4

2時間ごとにカウントしてグループ化するにはどうすればよいですか?

私はこのようなテーブルを持っています:

Id  TheTime
--  -------
1   07/07/2012 08:49:02
2   07/07/2012 09:36:39
3   07/07/2012 10:36:39
4   07/07/2012 12:36:39
5   07/07/2012 13:36:39

どうすれば変換できますか:

TheTime_08_10  TheTime_10_12  TheTime_12_14 etc.. until TheTime_22_00
-------------  -------------  ------------              -------------
       2              1            2

よろしくお願いします、Stev

4

2 に答える 2

4

Hour()関数をサポートするデータベースの場合、次を使用できます。

SELECT Floor(Hour(TheTime)/2)*2, COUNT(*) FROM TimeTable GROUP BY Floor(Hour(TheTime)/2)

次のようなものが表示されます。

Floor(...) | Count(*)
---------------------
8          | 1
10         | 3
12         | 5
16         | 1

最初の列は開始時間8です-8:00から9:59までの時間を意味します。

于 2012-08-06T14:11:24.237 に答える
-1

StackOverflowにはこのタイプの問題の例がたくさんあります。単純なcaseステートメントを使用します。境界の周りのビジネスルールを理解していることを確認してください。

Select 
  Sum(Case When Datepart(hh, TheTime) Between 8 and 9 Then 1 Else 0 End) TheTime_8_10,
  ....
于 2012-08-06T13:58:46.980 に答える