Use rank and dense_rank in subquery
SQL> CREATE TABLE sales(
2 product_id NUMBER(6),
3 cid NUMBER,
4 time_id DATE,
5 sold NUMBER(3),
6 amount NUMBER(10,2),
7 cost NUMBER(10,2)
8 );
Table created.
SQL>
SQL> select * from
2 (select product_id,
3 sum(sold),
4 rank () over (order by sum(sold) desc) as rank,
5 dense_rank () over (order by sum(sold) desc) as dense_rank
6 from sales
7 where to_char(time_id, 'yyyy-mm') = '2001-06'
8 group by product_id)
9 where rank < 11;
no rows selected
SQL>
SQL>
SQL> drop table sales;
Table dropped.
Related examples in the same category