我有这样的查询:
SELECT SUM(value) FROM GroupTest GROUP BY DATEPART(DAY,timetag)
它按预期按天对数据进行分组。
有没有办法指定一天中的分组时间?例如,我希望3月5日是从'2015-03-05 06:00:00'
到,'2015-03-06 05:59:00'
并将其分组为2015-03-05(希望“日”是从早上6点到第二天早上5:59)。
如何做到这一点?
使用SQL Server 2008 R2。
编辑以添加示例:作为一个基本示例,如果我们采用以下数据:
id timetag value
1 2015-01-01 06:00:00.000 5
1 2015-01-01 09:00:00.000 5
1 2015-01-01 12:00:00.000 5
1 2015-01-01 15:00:00.000 5
1 2015-01-01 18:00:00.000 5
1 2015-01-01 21:00:00.000 5
1 2015-01-02 00:00:00.000 5
1 2015-01-02 03:00:00.000 6
1 2015-01-02 06:00:00.000 6
1 2015-01-02 09:00:00.000 6
我想要以下查询:
select sum(value) from GroupTest group by datepart(day,timetag)
返回
2015-01-01 21:00:00.000 41
(前8行)
2015-01-02 09:00:00.000 12
(最后两行)
谢谢。
试试这个:
由于您将1天的定义在6个月后“停用”,因此您可以GROUP BY
TimeTag
-6个小时:
SELECT SUM(Value)
FROM GroupTest
GROUP BY DATEPART(DAY, DATEADD(HOUR, -6, TimeTag))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句