180. Consecutive Numbers
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번 동일한 숫자가 나오는 num을 뽑으면 되는 문제다. 새롭게 배운 윈도우 함수를 통해서 해결을 해보자. 윈도우 함수를 쓰지 않고 푼 풀이는 다른 사람이 푼 건데, 솔직히 나한테는 윈도우 함수를 쓴 풀이가 더 직관적인 느낌이다.
- 윈도우 함수를 쓴 풀이
SELECT DISTINCT num AS ConsecutiveNums FROM ( SELECT num ,LEAD(num, 1) OVER (ORDER BY id) AS num_1 ,LEAD(num, 2) OVER (ORDER BY id) AS num_2 FROM Logs ) AS c_logs WHERE num = num_1 AND num_1 = num_2
- 윈도우 함수를 쓰지 않고 푼 풀이
SELECT DISTINCT num as ConsecutiveNums FROM logs WHERE (id + 1, num) IN (SELECT * FROM logs) AND (id + 2, num) IN (SELECT * FROM logs)