本文主要是介绍[SQL] LeetCode 180. 连续出现的数字 - [Medium],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
180. 连续出现的数字
题目:
编写一个 SQL 查询,查找所有至少连续出现三次的数字。
+----+-----+
| Id | Num |
+----+-----+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 1 |
| 6 | 2 |
| 7 | 2 |
+----+-----+
例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。
+-----------------+
| ConsecutiveNums |
+-----------------+
| 1 |
+-----------------+
SQL架构:
Create table If Not Exists Logs (Id int, Num int);
Truncate table Logs;
insert into Logs (Id, Num) values ('1', '1');
insert into Logs (Id, Num) values ('2', '1');
insert into Logs (Id, Num) values ('3', '1');
insert into Logs (Id, Num) values ('4', '2');
insert into Logs (Id, Num) values ('5', '1');
insert into Logs (Id, Num) values ('6', '2');
insert into Logs (Id, Num) values ('7', '2');
解题语句:
SELECT DISTINCT Num as ConsecutiveNums
FROM Logs
WHERE (Id+1, Num) IN (SELECT * FROM Logs)
AND (Id+2, Num) IN (SELECT * FROM Logs);
这篇关于[SQL] LeetCode 180. 连续出现的数字 - [Medium]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!