如何按每个组中的字段获取某些项目,按“分组依据”分组。
像这样:SELECT (four items in each product_type GROUP)
FROM products
GROUP BY product_type
ORDER BY product_price.
答案 0 :(得分:0)
类似的东西:
select *
from product p1
where (select count(*) from product p2
where p2.product_type=p1.product_type and p2.price<p1.price)<4
order by product_type, product_price;
嵌套查询在其类型中按价格对产品进行排名(其他的价格低于此产品的价格,它的排名越大;最便宜的排名为0),外部查询只选择具有排名的产品介于0和3之间。
由于你写了“order by”,我知道你需要每个项目,而不是它们的集合。因此,外部查询中不需要group by。如果你只需要一串他们的名字,那么就这样:
select
group_concat(name)
from product p1
where (select count(*) from product p2
where p2.product_type=p1.product_type and p2.price<p1.price)<4
group by product_type;