180.Mysql之连续出现的数字

 

编写一个 SQL 查询,查找所有至少连续出现三次的数字。

+----+-----+
| Id | Num |
+----+-----+
| 1  |  1  |
| 2  |  1  |
| 3  |  1  |
| 4  |  2  |
| 5  |  1  |
| 6  |  2  |
| 7  |  2  |
+----+-----+

例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。

+-----------------+
| ConsecutiveNums |
+-----------------+
| 1               |
+-----------------+

解决方案:
  1. 使用三个表联合查询,通过辅助id列 达到连续三个数比较的目的


select distinct l1.Num as ConsecutiveNums from Logs l1

join Logs l2 on l1.Id = l2.Id - 1

join Logs l3 on l1.Id = l3.Id - 2

where l1.Num = l2.Num and l2.Num = l3.Num;

 

 

posted @ 2018-12-01 15:57  卓别林铲屎官  阅读(727)  评论(0)    收藏  举报