我怎样才能每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
提前谢谢你, 甜菊
答案 0 :(得分:2)
对于支持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的时间等。
答案 1 :(得分:0)
StackOverflow上有很多此类问题的例子。使用简单的案例陈述。确保您了解有关边界的业务规则。
Select
Sum(Case When Datepart(hh, TheTime) Between 8 and 9 Then 1 Else 0 End) TheTime_8_10,
....