MySQL中记录集组中的四个项目

时间:2009-09-14 08:46:18

标签: mysql

如何按每个组中的字段获取某些项目,按“分组依据”分组。

像这样:

SELECT    (four items in each product_type GROUP) 
FROM      products 
GROUP BY  product_type 
ORDER BY  product_price.

1 个答案:

答案 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;