문제
Find all numbers that appear at least three times consecutively.
Return the result table in any order.
The result format is in the following example.
적어도 3번 연속되는 숫자를 출력하면 된다.
출력

쿼리
SELECT
DISTINCT A.NUM AS ConsecutiveNums
FROM
LOGS A
JOIN
LOGS B
ON A.ID + 1 = B.ID
AND A.NUM = B.NUM
JOIN
LOGS C
ON A.ID + 2 = C.ID
AND A.NUM = C.NUM;
SELECT
DISTINCT A.NUM AS ConsecutiveNums
FROM
(
SELECT
NUM,
LEAD(NUM, 1) OVER (ORDER BY ID) AS CON1,
LEAD(NUM, 2) OVER (ORDER BY ID) AS CON2
FROM
LOGS
) A
WHERE
A.NUM = A.CON1
AND A.CON1 = A.CON2;
하나는 LEAD를 사용해서 풀어봤다. 속도는 LEAD 사용한 쿼리가 더 느리게 나왔다.
문제 출처
https://leetcode.com/problems/consecutive-numbers/submissions/1834026617/
'Study > SQL' 카테고리의 다른 글
| [LeetCode] 183. Customers Who Never Order (0) | 2025.11.25 |
|---|---|
| [LeetCode] 182. Duplicate Emails (0) | 2025.11.25 |
| [LeetCode] 178. Rank Scores (0) | 2025.11.13 |
| [LeetCode] 177. Nth Highest Salary (0) | 2025.11.10 |
| [LeetCode] 176. Second Highest Salary (0) | 2025.11.06 |