我正在尝试在 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] 删除。
我来说两句