SQL SERVER – 按n分钟间隔对记录进行分组

我有这样一张桌子:

     [SDate - DateTime]              [Value - Decimal]
    2010-11-16 10:32:22                     1
    2010-11-16 10:58:08                     2

我需要一个查询来按n分钟间隔对记录进行分组.

输出可以是例如(按60分钟分组):

    2010-11-16 10:10:00   avg(Value)
    2010-11-16 10:11:00   avg(Value)
    2010-11-16 10:12:00   avg(Value)

到目前为止,我一直使用此查询按10分钟间隔进行分组,因为间隔时间介于0到60分钟之间:

...
GROUP BY
DATEPART(YEAR, SDate),
DATEPART(MONTH, SDate),
DATEPART(DAY, SDate),
DATEPART(HOUR, SDate),
(DATEPART(MINUTE, SDate) / 10)

但是现在间隔可以是125436758分钟,例如.

我无法创建新表,用户定义的时间间隔必须为n分钟.
我正在使用SQL SERVER 2012.谢谢.

GROUP BY 
...
(DATEDIFF(MINUTE, 0, SDate) / @n)
https://stackoverflow.com/questions/26788729/sql-server-group-records-by-n-minutes-interval

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:SQL SERVER – 按n分钟间隔对记录进行分组