• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

lead가 아닌 lag로 해도 동일해보이는데요

22.08.30 23:55 작성 조회수 199

0

SELECT DISTINCT lags.num1 AS ConsecutiveNums

FROM

(

SELECT

id,

num AS num1,

lag(num) OVER(ORDER BY id) AS num2,

lag(num,2) OVER(ORDER BY id) AS num3

FROM logs

) AS lags

WHERE lags.num1 = lags.num2 = lags.num3

으로 하면 1과 2가 나오네요 ㅎㅎ ㅠ FROM 절 서브쿼리만 따로 돌려봤을 때에도 num1~3이 모두 같은건 1밖에 없고 테이블을 심플하게 엑셀로 생각해봐도 lead나 lag나 다를게 없어보이는데 최종적으로 돌려볼때는 자꾸 1,2가 모두 나와서요

답변 1

답변을 작성해보세요.

0

말씀하신 대로 LEAD 대신 LAG를 쓴 것에는 문제될 부분이 없습니다.

이 쿼리에서 오답이 나오는 이유는 WHERE 절 때문입니다.
지금 작성하신 것처럼 여러 개의 부등호를 동시에 사용해 3개 이상의 값을 비교하는 것은 불가능하므로 아래와 같이 바꿔주셔야 합니다.
WHERE lags.num1 = lags.num2 AND lags.num2 = lags.num3