[MySQL] 윈도우 함수

김재현·2022년 10월 13일
0

sql

목록 보기
12/12
post-thumbnail

깃허브 : TIL 저장소

MySQL 공부 내용을 깃허브 TIL 저장소에 정리를 해두었습니다. 이를 수행하고자 하는 작업을 기준으로 문법들을 다시 정리를 해보고자합니다. 이번 게시글에서는 윈도우 함수에 대해 정리해보았습니다.


Window Function

1. 기본 형태

SELECT columnname1
     , columnname2
     ...
     , function(columnname) OVER (PARTITION BY columnname ORDER BY columnname) AS columnname
FROM tablename

2. 순위 정하기

  • ROW_NUMBER(), RANK(), DENSE_RANK()
SELECT columnname
     , ROW_NUMBER() OVER (ORDER BY value) AS new_name -- 공동 1위가 3명이어도 각각 1위, 2위, 3위
     , RANK() OVER (ORDER BY value) AS new_name -- 공동 1위가 3명이면, 그 다음은 4위
     , DENSE_RANK() OVER (ORDER BY value) AS new_name -- 공공동 1위가 3명이어도 그 다음은 2위
FROM tablename      

3. 데이터 위치 바꾸기

  • LAG(), LEAD()
# 밀기
LAG(컬럼) OVER (PARTITION BY columnname ORDER BY columnname)
LAG(컬럼, 칸수) OVER (PARTITION BY columnname ORDER BY columnname)
LAG(컬럼, 칸수, Defalt) OVER (PARTITION BY columnname ORDER BY columnname)

# 당기기
LEAD(컬럼) OVER (PARTITION BY columnname ORDER BY columnname)
LEAD(컬럼, 칸수) OVER (PARTITION BY columnname ORDER BY columnname)
LEAD(컬럼, 칸수, Defalt) OVER (PARTITION BY columnname ORDER BY columnname)

0개의 댓글