sql - Get the first 10 rows for each group -


i have 3 tables:

customer(idcustomer, name) product(idproduct, product) order(idproduct, idcustomer, nborders) 

so order table stores how many times customer has ordered product.

i need view this:

toporder(name, product, nbcommands) 

but want 10 products each customer, ones ordered , can't figure out.

the dense_rank window function should doctor prescribed:

create view toporder select name, product, nborders   (select name, product, nborders,                dense_rank() on (partition o.idcustomer                                   order nborders desc) rk           customer c         join   orders o on c.idcustomer = o.idcustomer         join   product p on p.idproduct = o.idproduct        ) t  rk <= 10 

Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -