with a as(
    select *,
        dense_rank() over(partition by type order by price desc) as rk
    from product_info
),
b as(
    select *
    from a
    where rk<=2
)
select product_id,product_name,type,price
from b
order by price desc,product_id
limit 3;