编写一个 SQL 查询,查找所有至少连续出现三次的数字。
+----+-----+
| Id | Num |
+----+-----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
+----+-----+
例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1 |
+-----------------+
这道题的重点是连续出现至少三次,那就是三张表进行关联了~Num值相同,Id逐渐递增。
select distinct L1.Num ConsecutiveNums from Logs L1,Logs L2,Logs L3 where L1.Id
=L2.Id
-1 and L2.Id
=L3.Id
-1 and L1.Num
=L2.Num
and L2.Num
=L3.Num
;