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 rk
        FROM
            product_info
    ) t
where
    t.rk <= 2
order by price desc,product_name
limit 3