【问题标题】:SQL Server PIVOT table for Hours小时的 SQL Server PIVOT 表
【发布时间】:2012-06-17 10:05:52
【问题描述】:

我有一个如下的 T-SQL 查询,它查询包含搜索数据的表并获取搜索时间和该搜索时间的行数。

SELECT DATEPART(HOUR, aps.CreatedOn) AS SearchHour, COUNT(*) AS ItemCOUNT 
FROM ASearches aps
GROUP BY DATEPART(HOUR, aps.CreatedOn)
ORDER BY SearchHour;

如您所见,这不会产生很好的结果。但是,我知道如果为此使用数据透视表并将小时数作为列名,那会更好。我试过了,但到目前为止我一直失败。

知道怎么做吗?

【问题讨论】:

    标签: sql-server tsql sql-server-2008-r2 pivot


    【解决方案1】:

    类似这样的:

    SELECT *
      FROM (SELECT DATEPART(HOUR, CreatedOn) AS SearchHour 
              FROM ASearches) aps
     PIVOT (COUNT([SearchHour]) FOR SearchHour IN 
             ( [0],  [1],  [2],  [3],  [4],  [5], 
               [6],  [7],  [8],  [9], [10], [11], 
              [12], [13], [14], [15], [16], [17], 
              [18], [19], [20], [21], [22], [23])) as pvt
    

    【讨论】:

    • 啊,很好。有一个错误,我改正了。谢谢!
    • 啊,是的,对不起 - 我让它在我拥有的数据库上工作,然后用你的原始名称编辑回来 - 错误:) 谢谢
    猜你喜欢
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2015-12-05
    相关资源
    最近更新 更多