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 rk from product_info) t where rk <= 2 order by price desc,product_name limit 3