如何按对应identifyingId统计Process数量?SQL问题求助
解决按
identifyingId统计Process数量的问题 看起来你遇到的问题是分组统计的结果和预期不符,我结合你提供的测试数据,分两种常见需求场景来给出解决方案,你可以对照自己的预期来选择合适的写法:
场景1:统计每个identifyingId下所有process的总出现次数
如果你的需求是统计每个ID对应的所有记录数(包含重复的process条目),那正确的SQL写法如下:
declare @t table (process char(3), identifyingId int) insert into @t values ('abc',123),('abc',345),('abc',567),('abc',345),('cdf',123),('cdf',123) select identifyingId, COUNT(process) as total_process_records from @t group by identifyingId
执行后得到的结果:
| identifyingId | total_process_records |
|---|---|
| 123 | 3 |
| 345 | 2 |
| 567 | 1 |
场景2:统计每个identifyingId下不同process的数量
如果你的预期是得到每个ID对应的不重复process个数(比如ID=123对应2个不同的process:abc和cdf),那需要用COUNT(DISTINCT process)来实现:
declare @t table (process char(3), identifyingId int) insert into @t values ('abc',123),('abc',345),('abc',567),('abc',345),('cdf',123),('cdf',123) select identifyingId, COUNT(DISTINCT process) as distinct_process_count from @t group by identifyingId
执行后得到的结果:
| identifyingId | distinct_process_count |
|---|---|
| 123 | 2 |
| 345 | 1 |
| 567 | 1 |
如果你的预期不属于这两种场景,可以补充说明具体想要的结果,我再帮你调整SQL语句~
内容的提问来源于stack exchange,提问作者Srinivasan Rajasekaran
相关产品推荐
相关产品推荐

