SQL SERVER - 按 n 分钟间隔对记录进行分组 [英] SQL SERVER - Group records by n minutes interval

查看:39
本文介绍了SQL SERVER - 按 n 分钟间隔对记录进行分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一张这样的桌子:

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

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

and I need a query to group records by n minutes interval.

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

Output can be for example(grouped by 60 minutes):

    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 分钟之间:

Up to now, I have been using this query to group by 10 minutes interval because intervals were between 0 and 60 minutes:

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

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

But now the interval can be 125436758 minutes, for example.

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

I can not create new tables and the user-defined interval must be n minutes. I am using SQL SERVER 2012. Thanks.

推荐答案

GROUP BY 
...
(DATEDIFF(MINUTE, 0, SDate) / @n)

这篇关于SQL SERVER - 按 n 分钟间隔对记录进行分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆