Analytical Functions Oracle PLSQL

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.