Leetcode MySQL Consecutive Numbers
업데이트:
문제
코드
# Write your MySQL query statement below
SELECT DISTINCT Num AS ConsecutiveNums
FROM Logs l1
WHERE (l1.Id + 1, Num) IN (SELECT * FROM Logs)
AND (l1.Id + 2, Num) IN (SELECT * FROM Logs)
#WHERE EXISTS (
# SELECT 1 FROM Logs l2
# WHERE l2.Id = l1.Id + 1 AND l1.Num = l2.Num
#)
#AND EXISTS (
# SELECT 1 FROM Logs l2
# WHERE l2.Id = l1.Id + 2 AND l1.Num = l2.Num
#)
결과
설명
-
Logs Table에서 연속된 Id에 동일한 Num이 들어가 있는 모든 Id를 반환하는 문제이다.
-
Logs Table에 $Id + 1$과 Num, $Id + 2$와 Num이 존재하는지를 검증하면 된다.
- WHERE 조건문의 IN과 EXISTS는 비슷한 용도로 사용하지만, 일반적으로 데이터가 많을수록 EXISTS가 적을수록 IN이 효율적이다.
댓글남기기