我有一个表格(MySQL),每n秒捕获一次样本。该表有很多列,但与此相关的只有两列:时间戳(TIMESTAMP类型)和计数(INT类型)。
我想做的是获取一定时间范围内count列的总和和平均值。例如,我每2秒记录一次样本,但是我希望所有样本的计数列的总和在10秒或30秒的窗口中。
这是数据示例:
--------------------- + ----------------- + 我想要的输出(基于上面的数据)应如下所示:
--------------------- + ----------------- + | 2010-06-15 23:35:00 | 1 | #这是00-30秒范围内的总和 | 2010-06-15 23:35:30 | 7544 | #这是30到60秒范围内的总和 | 2010-06-17 10:39:35 | 450 | #这是30到60秒范围内的总和
我将主要使用此查询将数据从该表虹吸到另一个表。
谢谢!
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 30
或者说由于某种原因,您希望将它们以20秒的间隔进行分组,以此类推DIV 20。要更改GROUP BY值之间的边界,可以使用
GROUP BY (UNIX_TIMESTAMP(time_stamp) + r) DIV 30
这里r的文字非负整数小于30。因此
GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 30
应该给您在hh:mm:05和hh:mm:35之间以及hh:mm:35和hh:mm + 1:05之间的总和。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。