강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[백문이불여일타] 데이터 분석을 위한 고급 SQL

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

작성

·

336

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

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

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

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기