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