select
    t1.product_id,
    t1.product_name,
    t1.type,
    t1.price
from
    (select
        product_id,
        product_name,
        type,
        price,
        rank() over(partition by type order by price desc) as ranking----核心是用rank而非row_number
     from 
        product_info
    ) t1
where t1.ranking<=2
order by t1.price desc,t1.product_name limit 3