BDu*_*elz 2 mysql sql aggregate-functions
我有一个项目表,我从几个不同的在线商店,如Ebay /亚马逊等获得.在今天之前,我想简单地根据制作的年份和制造它的制造商对每个项目进行分组.
所以,结果看起来像这样
total year manufacturer
100 1999 man_a
32 2002 man_b
Run Code Online (Sandbox Code Playgroud)
现在,我想通过每个商品来自哪个商店来缩小我的数量.总而言之,我想知道在某一年和某个制造商生产了多少物品,以及在ebay,亚马逊等上发现了多少物品.结果应该与此类似(至少提供相同的数据)
total year manufacturer ebay_count amazon_count
100 1999 man_a 40 60
32 2002 man_b 21 11
Run Code Online (Sandbox Code Playgroud)
我可以做这样的事情,如果是这样的话怎么样?
下面是我用来分组年份和制造商的查询,如果需要的话.
SELECT `year`, `manufacturer`, COUNT(id) AS `total` FROM `items` GROUP BY `manufacturer`, `year` ORDER BY `total` DESC LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
谢谢
使用:
SELECT `year`,
`manufacturer`,
COUNT(id) AS `total`,
SUM(CASE WHEN store = 'ebay' THEN 1 ELSE 0 END) AS ebay_count,
SUM(CASE WHEN store = 'amazon' THEN 1 ELSE 0 END) AS amazon_count
FROM `items`
GROUP BY `manufacturer`, `year`
ORDER BY `total` DESC
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)