我有一张这样的表:
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天(仅是一个示例,但类似的东西)
在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