SQL:多次返回包含特定值的所有行

时间:2014-02-07 15:20:40

标签: sql .net sql-server-2008

我有一张包含以下内容的表格:

store        Qty
----
store1       1
store2       2
store1       3
store2       2

我想输出这个:

------------
store     Qty
store2    2(value '2' occurs 2 times)
store1    0(value '2' occurs 0 times)

我想按降序返回值为{2}的列Qty的出现次数(发生次数)。

2 个答案:

答案 0 :(得分:5)

您需要条件聚合(即使用带有聚合函数的case语句):

select store, sum(case when Qty = '2' then 1 else 0 end) as Qty
from table t
group by store;

答案 1 :(得分:2)

SELECT t.store, COUNT(QTY) AS QTY2
FROM TABLE T
WHERE t.QTY = 2
GROUP BY t.store
ORDER BY COUNT(QTY) DESC

这应该有效。它将提供按商店分组的2个数量的计数,并根据存在的数量以降序显示商店。