编写一个 SQL 查询,查找所有至少连续出现三次的数字。
+----+-----+
| Id | Num |
+----+-----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
+----+-----+
例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1 |
+-----------------+
思路:自连接,注意去重。
select distinct A.Num as 'ConsecutiveNums'
from Logs as A,Logs as B,Logs as C
where A.Id-1=B.Id and B.Id-1=C.Id and A.Num=B.Num and B.Num=C.Num;