题目:
编写一个 SQL 查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。
解题思路:
连续出现的意味着相同数字的 Id 是连着的,由于这题问的是至少连续出现 3 次,我们使用 Logs 并检查是否有 3 个连续的相同数字。
代码实现:
SELECT DISTINCT
a.Num AS ConsecutiveNums
FROM
Logs a,
Logs b,
Logs c
WHERE
a.Id = b.Id - 1
AND b.Id = c.Id - 1
AND a.Num = b.Num
AND b.Num = c.Num