【发布时间】:2018-07-31 14:31:15
【问题描述】:
我想在包含日志文件的数据库中查找最长的连续序列。 该文件具有以下结构:
select * from log;
+---------------+-------------------+---+
|sequence_number|timestamp |...|
|---------------+-------------------+---+
|1 |2012-02-21 13:31:21|...|
|2 |2012-02-21 13:31:58|...|
|3 |2012-02-21 13:32:01|...|
|4 |2012-02-21 13:33:24|...|
|5 |2012-02-25 05:41:12|...|
|6 |2012-02-25 05:41:51|...|
etc...
我想查找具有最长连续条目系列的期间的开始日期和结束日期,其中两行之间的时间差小于一分钟。上面数据库的结果应该是:
+-------------------+-------------------+----+
|start_date |end_date |size|
+-------------------+-------------------+----+
|2012-02-21 13:31:21|2012-02-21 13:32:01|3 |
|2012-02-25 05:41:21|2012-02-25 05:41:51|2 |
|2012-02-21 13:33:24|2012-02-21 13:33:24|1 |
我检查了一些提示,但可以找到适合 mysql (MariaDB 10.1.23) 的解决方案
希望有人能帮忙,已经谢谢了!
【问题讨论】:
-
忽略平局是什么意思?据我所见,执行后的解决方案可悲地没有任何意义......
-
结果我不需要它们。但重要的是要获得连续序列的大小,即序列中没有中断的记录数。
-
但是您的 @prevx := 时间戳始终等于时间戳,并且 i 和 j 值对我来说没有任何意义...有什么我看不到的吗?
-
这很好用,你能把这个作为anwser发布吗?