Sql 从列中计算值
我正在尝试在SQL Server中创建一个脚本,该脚本将对列下的值进行计数,但我希望它仍然报告未计数的缺失值 目前,我使用group by进行了以下设置,但它将结果减半:Sql 从列中计算值,sql,sql-server,Sql,Sql Server,我正在尝试在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
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万。我希望看到200000条记录,每个名称的总计数或空值。当我运行上面的脚本时,每个记录获得1
示例:如果ID 1的计数为2,而ID 2的计数为2,我希望两个ID都显示为每个ID的单独计数。试试看
select count(name) as Count, ID, Building
from table
group by ID, Building
您需要从子查询中获取计数,然后加入该子查询
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)
编辑您的问题并(1)标记您正在使用的数据库;(2) 显示样本数据;(3) 显示期望的结果。“Report missing values not counted”(报告缺少未计数的值)没有真正的意义。这与问题中显示的语句有什么不同?当此查询工作时,我不想计算空值。我希望它们显示为每个ID的0,该ID的建筑值为空。然后我们需要使用案例,当我更新答案时,对于没有建筑编号的ID,我仍然没有得到0。我不想计算0的空值。我希望它们按照没有建筑编号的ID显示。@Jeff抱歉,您需要在我的回答中使用第二个连接,我忘记更改它,尽管文本中说要将其用于空值。。。我再做一次更新