我有一个包含 2 个字段的 SQL 表:时间戳和值。以下是部分数据的摘录。
2005-02-17 13:31:00 2
2005-02-17 13:46:00 3
2005-02-17 14:01:00 1.7
2005-02-17 14:16:00 2.3
2005-02-17 14:31:00 2
2005-02-17 14:46:00 2.5
2005-02-17 15:01:00 2.2
2005-02-17 15:16:00 2.4
2005-02-17 15:31:00 2.6
2005-02-17 15:46:00 2.6
2005-02-17 16:01:00 2.7
我试图获取“值”列的每小时平均值,但是我似乎无法使其正常工作。最终输出将显示时间戳的开始时间以及值列的平均值。
对于最终输出,我希望获得完整的时间戳,而不仅仅是小时。因此,从 2005 年 2 月 17 日 14:00 - 14:59 起,结果输出将是:
2005-02-17 14:00:00 2.125
我会这样做:
SELECT CAST(FLOOR(CAST(timestamp AS float)) AS datetime) AS day --strip time
, DATEPART(hh, timestamp) AS hour
, AVG(value) AS average
FROM times
GROUP BY CAST(FLOOR(CAST(timestamp AS float)) AS datetime)
, DATEPART(hh, timestamp)
Example fiddle http://sqlfiddle.com/#!3/c6915/1.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)