【发布时间】:2018-05-01 22:15:37
【问题描述】:
我有一张如下表:
ID Date Value
1 2018-04-29 14:51:01 0.1
2 2018-04-29 14:51:01 0.21
3 2018-04-29 14:51:01 0.123
2 2018-04-29 14:52:01 5.7
3 2018-04-29 14:52:01 1.2
1 2018-04-29 14:52:01 5.9
1 2018-04-29 14:53:01 1.23
3 2018-04-29 14:53:01 7.9
2 2018-04-29 14:53:01 1.68
1 2018-04-29 14:54:01 0.01
2 2018-04-29 14:54:01 0.068
3 2018-04-29 14:54:01 0.2686
2 2018-04-29 14:55:01 2.3
3 2018-04-29 14:55:01 3.4
1 2018-04-29 14:55:01 5.7
1 2018-04-29 14:56:01 102.357
3 2018-04-29 14:56:01 12.36
2 2018-04-29 14:56:01 123.47
1 2018-04-29 14:57:01 12379.42
2 2018-04-29 14:57:01 1230.1
3 2018-04-29 14:57:01 35.235
2 2018-04-29 14:58:01 1237.3
3 2018-04-29 14:58:01 4.68
1 2018-04-29 14:58:01 123.578
1 2018-04-29 14:59:01 1233.57
3 2018-04-29 14:59:01 23.457
2 2018-04-29 14:59:01 0.213
每分钟插入一次 ID 及其日期(在插入当前时间戳上)。一些 ID 可以在表格中出现一段时间,并且它们可以稍后在不同的时间重新出现。这些 id 没有顺序,它们可以在当前分钟“批次”的任何地方。
我想从这个表中每 2 分钟提取一次值,所以输出应该如下:
ID Date Value
1 2018-04-29 14:51:01 0.1
2 2018-04-29 14:51:01 0.21
3 2018-04-29 14:51:01 0.123
1 2018-04-29 14:53:01 1.23
3 2018-04-29 14:53:01 7.9
2 2018-04-29 14:53:01 1.68
2 2018-04-29 14:55:01 2.3
3 2018-04-29 14:55:01 3.4
1 2018-04-29 14:55:01 5.7
1 2018-04-29 14:57:01 12379.42
2 2018-04-29 14:57:01 1230.1
3 2018-04-29 14:57:01 35.235
PD:我不能在这个查询中使用变量,但我可以根据需要创建函数/过程。
就我对 MySQL 的了解而言……对我来说最简单的事情是创建另一个表,其中包含每两分钟运行一次的预定事件,并提取当前值并将它们插入到新表中。
此查询的另一个问题是,如果仅由一个查询完成,则 1 分钟间隔表有数百万行具有许多不同的 ID。
那么什么是最好的,继续研究如何构建查询或创建带有预定事件的表?
【问题讨论】:
-
@Strawberry 我必须发布一半的服务器程序才能公开所有查询,我认为我的要求很清楚,只需每隔 X 分钟在插入表中提取数据分钟。
-
如果您的 ID 在 14:52、14:54、14:56 等出现怎么办?它会完全从您的结果中排除吗?
-
@PM77-1 是的,删除这些不是问题,它们通常会在几分钟内出现,它们至少每分钟出现一天。
-
好的。然后以任何你想要的方式使用
modulo。
标签: mysql date datetime timestamp