【问题标题】:How to find count of column, based on 3 distinct values of 3 columns in Sql server?如何根据 Sql server 中 3 列的 3 个不同值查找列数?
【发布时间】:2013-12-25 09:42:14
【问题描述】:

我需要计算每个建筑物、每个楼层和每个区域的房间数量..(如下图所示)

我尝试过使用 distinct 和 group by,但没有得到所需的结果。

【问题讨论】:

    标签: sql sql-server count aggregate-functions


    【解决方案1】:

    您还没有提供您已验证的实际 SQL,但这样的事情应该可以工作(显然使用正确的字段/表名称)

    SELECT BuildingNo, Floor, Zone, COUNT(Rooms) AS NoOfRooms
    FROM myTable
    GROUP BY BuildingNo, Floor, Zone
    ORDER BY BuildingNo, Floor, Zone
    

    【讨论】:

    • 谢谢你这工作正常,我又添加了一列(NoOfRooms/8 as requiredLabor),但问题是我需要汇总值(例如 NoOfRooms=25 那么我应该得到“ 4')
    • 如果您使用的是 SQL Server 2012,您可以使用 ROUNDUP 函数,否则使用 CEILING 函数,如下所示:SELECT CEILING(25.0/8.0)(注意我使用的是浮点数而不是整数)。另见:stackoverflow.com/questions/4216506/rounding-up-in-sql-server
    • select *, CEILING(NoOfRooms/8) as Labourcount from (another select Query)y order by BuildingNo, FloorNo, Zone...这不是四舍五入。如果我使用 CEILING(NoOfRooms/8 as float) 作为 Labourcount ......那么它会给出错误
    • 尝试:选择 *, CEILING(NoOfRooms/8.0) 作为 Labourcount
    猜你喜欢
    • 2019-10-03
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    相关资源
    最近更新 更多