본문 바로가기
자격증/SQLD

SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제2장 SQL 활용 / 제6절 윈도우 함수

by RUCKUS 2021. 5. 27.

제6절 윈도우 함수

 

1. WINDOW FUNCTION 개요

  • 그룹 내 순위, 그룹 내 집계, 그룹 내 행 순서, 그룹내 비율 관련 함수로 구성
  • OVER 문구가 필수로 포함된다.
  • SELECT WINDOW_FUNCTION (ARGUMENTS) OVER
    ( [PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING 절] )   
    FROM ;

2. 그룹 내 순위 함수

  (1) RANK 함수

  • ORDER BY / PARTITION을 포함한 QUERY 문에서 특정 함목에 대한 순위를 구하는 함수
  • 동일한 값에 대해 동일한 순위를 부여한다.
  • SELECT 칼럼명, RANK() OVER (조건) ALIAS명
    FROM 테이블명

  (2) DENSE_RANK 함수

  • RANK 함수와 흡사하나, 동일한 순위를 하나의 건수로 취급하는 것이 틀리다.

  (3) ROW_NUMBER 함수

  • RANK나 DENCE_RANK가 동일한 값에 대해서는 동일한 순위를 부여하는데 반해, 동일한 값이라도 고유한 순위를 부여한다.

3. 일반 집계 함수

  (1) SUM 함수 : 합계

  (2) MAX 함수 : 최대값

  (3) MIN 함수 : 최소값

  (4) AVG 함수 : 평균

  (5) COUNT 함수 : 개수

 

4. 그룹 내 행 순서 함수

  (1) FIRST_VALUE 함수 : 파티션별 윈도우에서 가장 먼저 나온 값

  (2) LAST_VALUE 함수 : 파티션별 윈도우에서 가장 나중에 나온 값

  (3) LAG 함수 : 파티션별 윈도우에서 이전 몇 번째 행의 값을 가져올 수 있다.

  (4) LEAD 함수 : 파티션별 윈도우에서 이후 몇 번째 행의 값을 가져올 수 있다.

 

 

5. 그룹 내 비율 함수

  • RATIO_TO_REPORT 함수: 전체 SUM(칼럼)값에 대한 행별 칼럼 값의 백분율을 소수점으로 구함
  • PERCENT_RANK 함수: 제일 먼저 나오는 것을 0으로, 제일 늦게 나오는 것을 1로 하여, 값이 아닌 행의 순서별 백분율을 구한다.
  • CUME_DIST 함수: 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율
  • NTILE 함수: 전체 건수를 ARGUMENT 값으로 N 등분한 결과