计算列中的值

杰夫

我正在尝试在 SQL Server 中创建一个脚本,该脚本将对列下的值进行计数,但我希望它仍然报告未计算的缺失值。

目前,我对 group by 进行了以下设置,但它将结果减半:

select count(ID) as Count, Building, ID
from table
group by Building, ID

我希望我的输出显示每个 ID 的计数以及空值(如果每个 ID 没有什么可计算的)。

Building  ID
1234      1
1234      2
4567      3
4567      4
8910      5
0         6

Want the Output To Be:
Building  ID Count
1234       1   2
1234       2   2
4567       3   2
4567       4   2
8910       5   1
0          6   0  

总人口为20万。我想查看 200,000 条记录,每个名称的总计数或空值。当我运行上述脚本时,每条记录获得 1 个。

示例:如果 ID 1 的计数为 2,ID 2 的计数为 2,我希望这两个 ID 显示为每个 ID 的单独计数。

乔金·丹尼尔森

您需要从子查询中获取计数,然后加入该子查询

SELECT 
   CASE WHEN t1.building is null THEN 0
   ELSE t1.building END AS Building,
   t1.id, 
   CASE WHEN t1.building is null THEN 0
   ELSE t2.count END AS Count
FROM table t1
JOIN (SELECT building, COUNT(*) as count 
      FROM table 
      GROUP BY building) AS t2 ON t2.building = t1.building OR (t2.building is null AND t1.building is null)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章