2012-08-06 94 views
3

如何計算和每2小時分組?每2小時計算一次SQL計數

我有這樣的一個表:

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 

感謝你在前進, 甜菊

+2

您正在使用哪個數據庫? – 2012-08-06 13:55:28

+0

SQL Server 2008 R2 – user609511 2012-08-06 14:11:29

回答

2

對於支持小時()函數的數據庫,你可以使用:

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等。

+0

我使用SQL 2008 R2,顯然Hour不是SQL 2008 R2的功能 – user609511 2012-08-06 14:14:37

+0

嘗試用DATEPART(hh,TheTime)替換小時(TheTime)。 – 2012-08-06 14:16:20

+0

很酷,謝謝 – user609511 2012-08-06 14:29:14

0

有很多這種類型的示例StackOverflow上的問題。使用簡單的案例陳述。確保您瞭解圍繞邊界的業務規則。

Select 
    Sum(Case When Datepart(hh, TheTime) Between 8 and 9 Then 1 Else 0 End) TheTime_8_10, 
    ....