【发布时间】:2023-03-04 23:47:02
【问题描述】:
我希望有人可以帮助解决这个棘手的问题:
我怎样才能“GROUP BY”一些在时间戳之间具有可配置相邻距离的行?
示例表:
ID | Value | When
1 | 5 | 2017-06-30 11:45:55
2 | 9 | 2017-06-30 11:45:56
3 | 0 | 2017-06-30 11:45:59
4 | 2 | 2017-06-30 11:46:02
5 | 7 | 2017-06-30 17:19:22
6 | 7 | 2017-06-30 17:19:22
7 | 3 | 2017-06-30 17:19:22
8 | 6 | 2017-06-30 17:19:22
想要的结果:
ID | Value | When
3 | 0 | 2017-06-30 11:45:59
7 | 3 | 2017-06-30 17:19:22
结果应找到相邻的条目(在示例中为两组,每组四行)并告诉最低的“值”。 相邻距离可以是任何值,例如一分钟或十分钟。
我尝试重新格式化日期,以便能够在没有几秒钟的情况下“分组”,但这不适用于第一个结果。
我的 MySQL 编程技能有限,但可以通过以下步骤完成:
- 按“时间”选择和排序
- 检查值并区分当前值和之前的“时间”值之间的差异,如果在范围内,则为 GROUP,如果不输出新行。
有什么想法吗?
【问题讨论】:
-
如果我们可以设置一个像“last_when”这样的变量(总是从前一行)和GROUP BY,只要(HAVING?)“TIMESTAMPDIFF(SECOND,when,last_when)
标签: mysql datetime group-by distance mysql-5.7