【发布时间】:2016-07-02 10:08:13
【问题描述】:
我有一个包含一些列的表,其中一列具有创建数据的时间戳。 假设下面是一个表格。
id | val | time
---+-----+--------------------
1 | 1 |2016-07-02 03:31:31
1 | 2 |2016-07-02 03:32:32
1 | 2 |2016-07-02 03:33:33
1 | 3 |2016-07-02 03:33:34
1 | 4 |2016-07-02 03:41:31
1 | 5 |2016-07-02 03:41:32
1 | 5 |2016-07-02 03:46:33
1 | 6 |2016-07-02 03:47:34
平均每秒钟就有一个条目进入该表。这是太多数据,无法在 UI 上显示。我希望每 10 分钟合并一次数据。
即结果应该只有两行。 val 列的值可以是任意值,val 是其中任何一个或它们的平均值都可以。
期望的输出(三个中的任何一个)
id | val | time
---+-----+--------------------
1 | 1 |2016-07-02 03:3X:XX
1 | 4 |2016-07-02 03:4X:XX
或
id | val | time
---+-----+--------------------
1 | 2 |2016-07-02 03:3X:XX
1 | 5 |2016-07-02 03:4X:XX
或
id | val | time
---+-----+--------------------
1 | 3 |2016-07-02 03:3X:XX
1 | 6 |2016-07-02 03:4X:XX
有没有办法将这 10 分钟作为动态参数? (静态启动即可)
编辑 包括我在这里的评论:我正在使用休眠,所以偏好是休眠。但如果这不起作用,那么我们只能选择 MySQL 本机。最后 X 行没有标准,我想要特定 id 和特定日期之间的所有行。只是我希望间隔 10 分钟的行数更少。
【问题讨论】:
-
mysql raw,还是休眠?你有一个冬眠的问题去别处。此外,要清楚从查询中吐出什么,例如从
now()向后的最后 X 行(10 分钟间隔)或其他东西。必须有人实际编写此代码,并希望第一次就正确完成 -
我正在使用休眠,所以首选休眠。但如果这不起作用,那么我们只能选择 MySQL 本机。最后 X 行没有标准,我想要特定 id 和特定日期之间的所有行。只是我想要间隔 10 分钟的行数更少。希望这次我清楚了。
-
好的,所以你想通过两个
datetimes,然后有 10 分钟的间隔。我可以在非休眠状态下做到这一点,但现在是凌晨 2 点,我已经筋疲力尽了。