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

时间:2010-10-13 22:16:45

标签: sql mysql aggregate-functions

我有一个项目表,我从几个不同的在线商店,如Ebay /亚马逊等获得。在今天之前,我想简单地根据制作的年份和制造商的制造商对每个项目进行分组。它

所以,结果看起来像这样

total  year  manufacturer
100    1999  man_a
32     2002  man_b

现在,我想通过每个商品来自哪个商店来缩小我的数量。总而言之,我想知道在某一年和某个制造商生产了多少物品,以及在ebay,亚马逊等上发现了多少物品。结果应该与此类似(至少提供相同的数据)

total  year  manufacturer  ebay_count  amazon_count
100    1999  man_a         40          60
32     2002  man_b         21          11

我可以做这样的事情,如果是这样的话?

下面是我用来对年份和制造商进行分组的查询,如果需要的话。

SELECT `year`, `manufacturer`, COUNT(id) AS `total` FROM `items` GROUP BY `manufacturer`, `year` ORDER BY `total` DESC LIMIT 10;

感谢

1 个答案:

答案 0 :(得分: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;