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

在此表中是否有方法可以按时间间隔进行分组?

如何解决在此表中是否有方法可以按时间间隔进行分组?

sql Server中,可以使用DATEPART,然后按小时,分钟和第二整数除法10进行分组。

CREATE TABLE #times
(
    thetime time,
    A int
)

INSERT #times
VALUES ('10:00:01', 2)
INSERT #times
VALUES ('10:00:07', 4)
INSERT #times
VALUES ('10:00:10', 2)
INSERT #times
VALUES ('10:00:17', 1)
INSERT #times
VALUES ('10:00:18', 3)

SELECT avg(A)    --   <-- here you might deal with precision issues if you need non-integer results.  eg:  (avg(a * 1.0)
FROM #times
GROUP BY datepart(hour, thetime), DATEPART(minute, thetime), DATEPART(SECOND, thetime) / 10

DROP TABLE #times

解决方法

我有一张这样的表:

DateTime   A

10:00:01   2 
10:00:07   4
10:00:10   2
10:00:17   1
10:00:18   3

是否可以创建一个查询,该查询每10秒向我返回A的平均值?在这种情况下,结果将是:

3 (4+2)/2
2 (2+1+3)/3

提前致谢!

编辑:如果您真的认为无法做到这一点,那就说不行!:)这是一个可以接受的答案,我真的不知道是否可以做到。

EDIT2:我正在使用SQL
Server2008。我希望具有不同的分组,但已修复。例如,范围分别为10秒,1分钟,5分钟,30分钟,1小时和1天(仅是一个示例,但类似的东西)

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