리트코드 [Consecutive Numbers]

윤태영·2024년 9월 2일
0

문제

https://leetcode.com/problems/consecutive-numbers/description/

Logs 테이블에 num 열의 정보가 연속적으로 3번 나오는 모든 숫자를 찾는 쿼리를 작성합니다. 이때, 반환하는 테이블의 순서는 상관없습니다.

Table : Logs

Example1

문제풀이

  1. LEAD 함수를 사용하여 +1 뒤에 있는 열의 숫자, +2 뒤에 있는 열의 숫자 추출

  2. SELECT 문에서 연산한 윈도우 함수를 바로 WHERE절에서 사용할 수 없으니 WITH문으로 만들어주기

  3. 최소 3번이상 연속되는 숫자의 중복을 없애기 위해 DISTINCT 사용

쿼리

WITH CS AS(
    SELECT id, num,
         LEAD(num,1) OVER(ORDER BY id) AS num1,
         LEAD(num,2) OVER(ORDER BY id) AS num2
    FROM Logs
)

SELECT distinct num AS ConsecutiveNums
FROM CS
WHERE num = num1 and num = num2
profile
ice blue

0개의 댓글