我有一个表格(MySQL),每n秒捕获一次样本。该表有很多列,但与此相关的只有两列:时间戳(TIMESTAMP类型)和计数(INT类型)。
我想做的是获取一定时间范围内count列的总和和平均值。例如,我每2秒记录一次样本,但是我希望所有样本的计数列的总和在10秒或30秒的窗口中。
这是数据示例:
+ --------------------- + ----------------- +
| time_stamp | 数|
+ --------------------- + ----------------- +
| 2010-06-15 23:35:28 | 1 |
| 2010-06-15 23:35:30 | 1 |
| 2010-06-15 23:35:30 | 1 |
| 2010-06-15 23:35:30 | 942 |
| 2010-06-15 23:35:30 | 180 |
| 2010-06-15 23:35:30 | 4 |
| 2010-06-15 23:35:30 | 52 |
| 2010-06-15 23:35:30 | 12 |
| 2010-06-15 23:35:30 | 1 |
| 2010-06-15 23:35:30 | 1 |
| 2010-06-15 23:35:33 | 1468 |
| 2010-06-15 23:35:33 | 247 |
| 2010-06-15 23:35:33 | 1 |
| 2010-06-15 23:35:33 | 81 |
| 2010-06-15 23:35:33 | 16 |
| 2010-06-15 23:35:35 | 1828 |
| 2010-06-15 23:35:35 | 214 |
| 2010-06-15 23:35:35 | 75 |
| 2010-06-15 23:35:35 | 8 |
| 2010-06-15 23:35:37 | 1799 |
| 2010-06-15 23:35:37 | 24 |
| 2010-06-15 23:35:37 | 11 |
| 2010-06-15 23:35:37 | 2 |
| 2010-06-15 23:35:40 | 575 |
| 2010-06-15 23:35:40 | 1 |
| 2010-06-17 10:39:35 | 2 |
| 2010-06-17 10:39:35 | 2 |
| 2010-06-17 10:39:35 | 1 |
| 2010-06-17 10:39:35 | 2 |
| 2010-06-17 10:39:35 | 1 |
| 2010-06-17 10:39:40 | 35 |
| 2010-06-17 10:39:40 | 19 |
| 2010-06-17 10:39:40 | 37 |
| 2010-06-17 10:39:42 | 64 |
| 2010-06-17 10:39:42 | 3 |
| 2010-06-17 10:39:42 | 31 |
| 2010-06-17 10:39:42 | 7 |
| 2010-06-17 10:39:42 | 246 |
+ --------------------- + ----------------- +
我想要的输出(基于上面的数据)应如下所示:
+ --------------------- + ----------------- +
| 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来按秒或按分钟来收集这些数字,但是我似乎无法弄清楚语法来获得GROUP BY命令的不到分钟或几秒的范围才能正常工作。
我将主要使用此查询将数据从该表虹吸到另一个表。
谢谢!