我有一个监控系统。每5秒检索一次用户的位置。但是,我想只显示范围内每15秒出现的记录。也许我会选择一个开始日期和一个结束日期来显示这些值....我正在尝试制作这个过滤器,但我没有得到它。
我有下表:
+------------+-------------------+
| ID | date_ |
+------------+-------------------+
| 1 |2017-07-10 10:11:10|
+------------+-------------------+
| 2 |2017-07-10 10:11:15|
+------------+-------------------+
| 3 |2017-07-10 10:11:20|
+------------+-------------------+
| 4 |2017-07-10 10:11:25|
+------------+-------------------+
| 5 |2017-07-10 10:11:30|
+------------+-------------------+
| 6 |2017-07-10 10:11:35|
+------------+-------------------+
| 7 |2017-07-10 10:11:40|
+------------+-------------------+
我想要一个*查询*,它只返回相差15秒的数据。对于上面的这个例子,我将返回以下行:
+------------+-------------------+
| ID | date_ |
+------------+-------------------+
| 1 |2017-07-10 10:11:10|
+------------+-------------------+
| 4 |2017-07-10 10:11:25|
+------------+-------------------+
| 7 |2017-07-10 10:11:40|
+------------+-------------------+
我想通过忽略基于一小时的某些行(例如15秒)来仅返回一些数据。这基于上次注册日期,例如:2017-07-10 10:11:40
。
如何以时间间隔返回一些*数据?
Obs。:我很抱歉英语。
答案 0 :(得分:0)
使用timestampdiff()自我加入怎么样?
select t2.*
from yourTable t1 join yourTable t2 on timestampdiff(second t1.date_, t2.date_) =15
由于您所需的结果包含第一行,您可能需要包含上述内容的联合查询以及
select *
from yourTable
where date_ = (select min(date_ from yourTable)