select product_id, product_name, type, price from ( select product_id, product_name, type, price, dense_rank() over ( partition by type order by price desc ) as ranks from product_info ) as t1 where t1.ranks<=2 order by price desc , product_name limit 3;