SELECT
    product_id,
    product_name,
    type,
    price
FROM (SELECT 
        product_id,
        product_name,
        type,
        price,
        RANK() OVER(PARTITION BY type ORDER BY price DESC) rk
    FROM product_info) t1
WHERE rk<=2
ORDER BY price DESC, product_id
LIMIT 3