그룹 함수 & 윈도우 함수

highway92·2021년 9월 16일
0

SQL

목록 보기
9/11

1. 윈도우 함수

순위, 집계 등 행과 행 사이의 관계를 정의하는 함수 OVER 구문을 필수로 한다.

SELECT 윈도우 함수(ARGUMENTS)
OVER([PARTITION BY 칼럼][ORDER BY 절][WINDOWING 절])
FROM 테이블 명

의 구조를 가진다.

순위함수

RANK() OVER([PARTITION BY 칼럼][ORDER BY 칼럼]
[WINDOWING 절])

  • RANK : 동일한 값에는 동일한 순위를 부여한다.
  • DENSE_RANK : RANK 와 같이 같은 값에는 같은 순위를 부여하나 한 건으로 취급한다.
  • ROW_NUMBER : 동일한 값이라도 고유한 순위를 부여한다.

일반 집계 함수

SELECT STUDENT_ID, NAME,
AVG(SCORE) OVER(PARTITION BY STUDENT_ID) AS AVG
FROM MIDDLE

  • SUM, AVG, MAX, MIN 등을 GROUP BY 구문 없이 사용 할 수 있다.

그룹 내 행 순서 함수

  • FIRST_VALUE : 가장 먼저 나온 값을 구한다.
  • LAST_VALUE : 가장 나중에 나온 값을 구한다.
  • LAG : 이전 X 번째 행을 가져온다.
  • LEAD : 이후 X 번째 행을 가져온다.

그룹 내 비율 함수

  • RATIO_TO_REPORT : 파티션 내 전체 합에 대한 비율을 구한다.
  • PERCENT_RANK : 파티션 내 순위를 백분율로 구한다.
  • CUME_DIST : 파티션 내 현재 행보다 작거나 같은 건들의 수를 누적 백분율로 구한다.
  • NTILE : 파티션 내 행들을 N등분한 결과를 구한다.
profile
웹 개발자로 활동하고 있습니다.

0개의 댓글