如何通过group by子句获得图像处理?

时间:2014-08-27 05:03:18

标签: sql-server

我有表JobInfo,其中包含JobId,ImageId,StatusId

需要的结果: 我需要知道处理了多少图像。对于已处理的图片,StatusId的值为7

以下查询仅显示statusId=7退出的那些jobIds,但我需要所有jobIds。

如果特定jobid不存在statusid,则count应为0,对应于该jobid。

SQL QUERY

 SELECT  jobid,COUNT(imageid) AS 'ProcessedCount'
 FROM    JobInfo WITH ( NOLOCK )
 WHERE   statusid = 7
 GROUP BY JobId ORDER BY JobId

如何实现这一结果?

由于

1 个答案:

答案 0 :(得分:1)

删除where子句...并按如下所示执行....使用sum和case语句,您可以获得预期的结果......

SELECT  jobid,
        COUNT(imageid) As TotalCount, 
        Sum(Case when Statusid=7 then 1 else 0 end)  AS 'ProcessedCount'
FROM    JobInfo WITH ( NOLOCK )
-- WHERE   statusid = 7
GROUP BY JobId ORDER BY JobId