我想选择5种最畅销的商品。
SELECT ID, shop, article_nr, count(*) as count
FROM table
GROUP BY shop, article_nr
ORDER BY count DESC
LIMIT 5此查询的结果:
ID | shop | article_nr | count
--------------------------------------
71 | amazon | 123 | 280
98 | amazon | 223 | 170
35 | amazon | 323 | 99
7 | ebay | 456 | 71
11 | amazon | 789 | 49
4 | ebay | 032 | 10如何在第二步中按列“shop”对结果进行分组(可能编辑查询)?
它应该是这样的(在前5名中只有一家):
ID | shop | article_nr | count
--------------------------------------
71 | amazon | 123 | 280
7 | ebay | 456 | 71
.. | shop_x | ... | 55
.. | shop_y | ... | 40
.. | shop_z | ... | 37有人能帮我吗?
发布于 2013-09-05 17:03:04
对于您的问题,流行且描述良好的答案就在这里:https://stackoverflow.com/a/612268/1803682
具体而言,如何选择AggregateFunction(列)(列)(其他列)?
如果您想在中使用它并发布它,我很乐意提供更多的帮助。
发布于 2013-09-05 17:24:09
这就是你想要的
SELECT id, shop, article_nr, count FROM table n
WHERE count = (SELECT MAX(count) FROM table GROUP BY shop HAVING shop = n.shop) LIMIT 5;https://stackoverflow.com/questions/18641802
复制相似问题