[LeetCode-SQL 50] 180. Consecutive Numbers

코린이·2025년 6월 7일

SQL 문제 풀이 (MySQL)

목록 보기
79/96

❓ 문제

Logs
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| num         | varchar |
+-------------+---------+

SQL에서 id는 이 테이블의 기본 키입니다.
id는 1부터 시작하는 자동 증가 열입니다.

연속으로 세 번 이상 나타나는 모든 숫자를 찾습니다.

결과 테이블을 임의의 순서로 반환합니다.

자세한 문제 내용은 사이트 참고...


❗️ 문제 풀이

-- 첫 번째 값 : num
-- 두 번째 값 : LAG(num, 1) OVER(ORDER BY id) 
-- 세 번째 값 : LAG(num, 2) OVER(ORDER BY id)

WITH tmp_tb AS (
SELECT
    id
    , num
    , CASE WHEN 1=1
        AND num = LAG(num, 1) OVER(ORDER BY id) 
        AND num = LAG(num, 2) OVER(ORDER BY id)
        THEN num
    ELSE NULL end AS ConsecutiveNums
FROM Logs
)
SELECT DISTINCT ConsecutiveNums
FROM tmp_tb
WHERE ConsecutiveNums IS NOT NULL
;

🔗 Reference

https://leetcode.com/problems/consecutive-numbers/description/?envType=study-plan-v2&envId=top-sql-50

0개의 댓글