【发布时间】:2015-02-26 10:31:18
【问题描述】:
我有这样的统计数据:
time val1
1424166578 51
1424166877 55
1424167178 57
1424167477 57
time 是一个 unix 时间戳。每 5 分钟有一个记录,不包括晚上和星期天。这种情况会持续数周。
现在我想获取平均一天和平均一周的这些值。结果应包括正常情况下每 5 分钟的值,但过去几天或几周的平均值。
结果应该是这样的:
time val1
0 43.423
300 46.635
600 51.887
...
因此,时间可以是一个时间戳,具有自一天或一周开始以来的相对时间。也许最好使用DATETIME...不确定。
例如,如果我使用GROUP BY FROM_UNIXTIME(time, '%Y%m%d'),我会得到一整天的值。但我想要所有日子的所有平均值。
【问题讨论】:
-
试试
GROUP BY FROM_UNIXTIME(time, '%d.%m.%Y') -
这对我的代码没有任何影响,仍然每天只给我一个值。
-
你能澄清一下吗?你一整天是什么意思?像 SUM(val1)...GROUP BY FROM_UNIXTIME(time, '%d.%m.%Y' ?
-
您想要窗口大小等于 1 天或 1 周的移动/滑动平均值吗?
-
好的,例如
14:45:00 -> 43.423,其中42.423 是14:45 - 14:50在过去7 天内每天的平均值?
标签: mysql sql group-by timestamp