Write a SQL query to find all numbers that appear at least three times consecutively.
+----+-----+
| Id | Num |
+----+-----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
+----+-----+
For example, given the aboveLogs
table, 1 is the only number that appears consecutively for at least three times.
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1 |
Solution:
SELECT DISTINCT l1.Num As ConsecutiveNums
FROM Logs l1
Join Logs l2 On L2.Id = L1.Id-1
Join Logs l3 On L3.Id = L1.Id-2
WHERE L1.Num=L2.Num and L1.Num=L3.Num;
网友评论