如何根据查询返回基于同一列上两个不同条件的结果?

时间:2015-06-27 12:04:38

标签: mysql sql

想象一下包含如下图所示数据的表格。enter image description here

如何对数据进行分组,以便获取项目名称,行数,数量超过20的行数和数量小于或等于20的行数。因此查询应返回如下结果:< / p>

Item,        num_rows, count_over_20, count_20_or_lower
Amazon Echo,  4,        2,            2
Apple iPod,   4,        2,            2
Google glass, 2,        0,            2

我可以编写一个简单的分组,但不知道如何为20以上的数量添加列。

SELECT item, count(*) as num_rows
FROM Sales
GROUP BY item;

1 个答案:

答案 0 :(得分:3)

您可以尝试:

SELECT item, count(*) as num_rows,
       sum(quantity > 20)  as count_over_20, 
       sum(quantity <= 20) count_20_or_lower
FROM Sales
GROUP BY item;

Demo here