[TIL] 윈도우함수 LAG, LEAD

tolerance·2020년 8월 26일
2

MySQL

목록 보기
6/8
post-thumbnail

LAG, LEAD. 데이터의 위치를 바꾸는 일을 할 수 있는 친구들이다.
LAG는 밀어내는 친구, LEAD는 당겨오는 친구다.

LAG(컬럼1) OVER (PARTITION BY 컬럼2  ORDER BY 컬럼3)
LAG(컬럼1, 칸 수) OVER (PARTITION BY 컬럼2  ORDER BY 컬럼3)
LAG(컬럼1, 칸 수, 디폴트 값) OVER (PARTITION BY 컬럼2  ORDER BY 컬럼3)
  • 위에서의 컬럼1은 실제로 데이터가 움직이게 되는 컬럼이다.
  • 컬럼2 앞의 PARTTION BY는 일종의 GROUP BY로 이해하면 된다. 해당 컬럼을 기준으로 그룹으로 묶어준다는 의미다.
  • ORDER BY 컬럼3은 이 데이터들을 컬럼3 기준으로 정렬해달라는 의미다.
  • 디폴트 값을 정해두지 않으면 비워지는 부분이 NULL 된다. 만일 디폴트 값을 '0'으로 하면 데이터가 '칸 수'만큼 밀려나 비워지는 부분에 '0'이 기재된다.

같은 것이 LEAD에도 적용된다.

LEAD(컬럼1) OVER (PARTITION BY 컬럼2  ORDER BY 컬럼3)
LEAD(컬럼1, 칸 수) OVER (PARTITION BY 컬럼2  ORDER BY 컬럼3)
LEAD(컬럼1, 칸 수, 디폴트 값) OVER (PARTITION BY 컬럼2  ORDER BY 컬럼3)
profile
매일. 나. 배운다. 조금씩

0개의 댓글