강의

멘토링

커뮤니티

Inflearn Community Q&A

No author

This post's author information has been deleted.

[A hundred words are not as good as seeing once] Advanced SQL for data analysis

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

Written on

·

341

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가 모두 나와서요

sql

Answer 1

0

jaemin님의 프로필 이미지
jaemin
Instructor

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

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

No author

This post's author information has been deleted.

Ask a question