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