微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决SQL SERVER-按n分钟间隔对记录进行分组

GROUP BY 
...
(DATEDIFF(MINUTE, 0, SDate) / @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)

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

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

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

我无法创建新表,并且用户定义的间隔必须为n分钟。我正在使用SQL SERVER2012。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。