SQL Group By Count Zero

时间:2015-03-21 22:03:14

标签: sql

我有以下查询,但不符合我的要求。我需要在结果中返回计数零。我正在寻找指定条件的计数为零的DocID,但这些DocID甚至没有显示在结果中。

SELECT 
    DocID, Count(*) AS ArchivedCount
FROM 
    Doc
WHERE 
    Status <> 'Archived'
GROUP BY
    DocID
ORDER BY 
    DocID

1 个答案:

答案 0 :(得分:5)

由于您需要使用所有DocID,因此应使用SUM代替COUNT,并将条件移至{{1}内的CASE语句中像这样:

SUM

现在结果将包含所有SELECT DocID , SUM(CASE WHEN Status <> 'Archived' THEN 1 ELSE 0 END) AS ArchivedCount FROM Doc GROUP BY DocID ORDER BY DocID ,即使DocIDStatus不同的结果。