如何计算MySQL中结果的结果?

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)

谢谢

OMG*_*ies 5

使用:

  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)