几小时的SQL Server PIVOT表

tug*_*erk 2 t-sql sql-server pivot sql-server-2008-r2

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

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

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

知道怎么样?

Mat*_*eld 7

像这样的东西:

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
Run Code Online (Sandbox Code Playgroud)