2

以下のようなT-SQLクエリがあります。これは、検索データを保持するテーブルをクエリし、検索時間とその検索時間の行数を取得します。

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

ご覧のとおり、これは素晴らしい結果を生み出しません。ただし、これにピボットテーブルを使用し、列名として時間を使用する場合は、それが良いことを知っています。試しましたが、今のところ失敗しています。

どのようにアイデアはありますか?

4

1 に答える 1

8

このようなもの:

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
于 2012-06-14T11:37:44.797 に答える