Sql server 如何使用GROUPBY子句获取图像处理计数?

Sql server 如何使用GROUPBY子句获取图像处理计数?,sql-server,Sql Server,我有一个表JobInfo,其中包含JobId、ImageId、StatusId列 要求的结果: 我需要知道有多少图像被处理。对于已处理的图像,StatusId的值为7 下面的查询只显示那些退出了statusId=7的作业ID,但我需要所有作业ID 如果特定jobid的statusid不存在,则与该jobid对应的计数应为0 SQL查询 SELECT jobid,COUNT(imageid) AS 'ProcessedCount' FROM JobInfo WITH ( NOLOCK

我有一个表
JobInfo
,其中包含JobId、ImageId、StatusId列

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

下面的查询只显示那些退出了
statusId=7
的作业ID,但我需要所有作业ID

如果特定jobid的statusid不存在,则与该jobid对应的计数应为0

SQL查询

 SELECT  jobid,COUNT(imageid) AS 'ProcessedCount'
 FROM    JobInfo WITH ( NOLOCK )
 WHERE   statusid = 7
 GROUP BY JobId ORDER BY JobId
如何达到这个效果


谢谢删除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

有多个状态ID(5,-5,7,9)。我只需要统计statusId=7您说过“下面的查询只显示statusId=7的作业ID,但我需要所有作业ID”,清楚地选择所有作业ID,而不管它们的状态如何!您现在怎么能说只需要statusId=7的计数?您运行过查询了吗?请保持冷静,朋友,您更新的查询工作正常。谢谢!!:)