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 ranks
from
    product_info
) as t1
where t1.ranks<=2
order by price desc , product_name
limit 3;