LeetCode 数据库面试题 – 连续出现的数字

本页内容

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

IdNum
11
21
31
42
51
62
72

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

假设 Id 是连续的。

ConsecutiveNums
1

解答

左连接自身获得前两条记录,判断 Num 是否一样,最后 DISTINCT 去掉重复的 Num 即可。

 1SELECT
 2    DISTINCT l1.Num AS ConsecutiveNums
 3FROM
 4    Logs l1,
 5    Logs l2,
 6    Logs l3
 7WHERE
 8    l1.Id = l2.Id - 1
 9    AND l2.Id = l3.Id - 1
10    AND l1.Num = l2.Num
11    AND l2.Num = l3.Num
12;

原题

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/consecutive-numbers