with t as (select product_id,product_name,type, price, rank()over(partition by type order by price desc) tag from product_info order by price desc, product_name) select product_id,product_name,type, price from t where tag between 1 and 2 limit 3