728x90
📚문제
📝풀이
# Write your MySQL query statement below
SELECT DISTINCT num AS ConsecutiveNums
FROM (SELECT id,
num,
LAG(num) OVER (ORDER BY id) AS prev_num,
LEAD(num) OVER (ORDER BY id) AS next_num
FROM Logs) consecutive
WHERE num = prev_num
AND num = next_num
✅OVER
- SQL에서 윈도우 함수(window function)를 적용할 때 사용하는 구문
- 특정 창(window) 또는 범위(range)내에서 계산 수행
- OVER 구문은 창이나 범위 의미
id를 기준으로 정렬하여 윈도우함수 생성하고
앞뒤 행의 num 값 가져오기
그리고 이렇게 생성된 테이블에서
현재행,이전행,다음행의 num이 모두 같은 경우(num이 세번연속 같은 숫자인 경우)일 때의
num을 가져오기
728x90