select product_id,product_name,type,price from ( select product_id,product_name,type,price from (select * , rank() over(partition by type order by price desc) rk from product_info)r where r.rk<=2 )rk2 order by 4 desc,2 asc limit 3