-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
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가 모두 나와서요
답변을 작성해보세요.
0
지식공유자 J
지식공유자2022.09.05
말씀하신 대로 LEAD 대신 LAG를 쓴 것에는 문제될 부분이 없습니다.
이 쿼리에서 오답이 나오는 이유는 WHERE 절 때문입니다.
지금 작성하신 것처럼 여러 개의 부등호를 동시에 사용해 3개 이상의 값을 비교하는 것은 불가능하므로 아래와 같이 바꿔주셔야 합니다.WHERE lags.num1 = lags.num2 AND lags.num2 = lags.num3
답변 1