【发布时间】:2019-08-23 11:29:44
【问题描述】:
我想计算一栋楼里有多少房子。数据集如下:
BuildingID, HouseID
1, 1
1, 2
1, 3
2, 4
2, 5
2, 6
NULL, 7
NULL, 8
下面的代码显示了房屋的总数,但是,房屋 7 和 8 没有建筑物,所以它不应该计算任何东西。
SELECT BuildingID
, HouseID
, COUNT(HouseID) OVER (PARTITION BY BuildingID) AS 'Houses in Building'
FROM BUILDING
我得到的结果:
BuildingID, HouseID, Houses in Building
1, 1, 3
1, 2, 3
1, 3, 3
2, 4, 3
2, 5, 3
2, 6, 3
NULL, 7, 2
NULL, 8, 2
我想要的结果:
BuildingID, HouseID, Houses in Building
1, 1, 3
1, 2, 3
1, 3, 3
2, 4, 3
2, 5, 3
2, 6, 3
NULL, 7, NULL --or 0
NULL, 8, NULL --or 0
有什么建议吗?
【问题讨论】:
标签: sql sql-server tsql sql-server-2012 analytic-functions