select product_id,product_name,type,price from (select product_id,product_name,type,price, rank()over(partition by type order by price desc) as rank_num from product_info) as t1 where rank_num <= 2 order by price desc,product_id asc limit 3