[SQLD] 윈도우 함수(WINDOW FUNCTION)

AReum·2023년 11월 30일

1. 윈도우 함수(WINDOW FUNCTION) 개요

  • 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수이다.

1-1. 윈도우 함수의 특징

  • OVER 문구가 키워드로 필수 포함된다.
  • 서브쿼리에서 사용 가능하지만 중첩해서 사용은 불가능하다.

1-2. 윈도우 함수의 구조

  • ARGUMENTS (인수) : 함수에 따라 0 ~ N개의 인수가 지정될 수 있다.
  • PARTITION BY 절 : 전체 집합을 기준에 의해 소그룹으로 나눌 수 있다.
  • ORDER BY 절 : 어떤 항목에 대해 순위를 지정할 지 ORDER BY 절을 기술한다.
  • WINDOWING 절 : WINDOWING 절은 함수의 대상이 되는 행 기준의 범위를 지정할 수 있다.
  • ROWS는 물리적인 결과 행의 수
  • RANGE는 논리적인 값에 의한 범위
SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ( [PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING 절] ) FROM 테이블 명;

2. 윈도우 함수의 종류

2-1. 순위 함수

  • RANK : 동일한 값 대해서는 동일한 순위를 부여한다.
  • DENSE_RANK : 동일한 순위를 하나의 건수로 순위를 부여한다.
  • ROW_NUMBER : 동일한 값이라도 고유한 순위를 부여한다.

2-2. 일반 집계 함수

  • SUM : 파티션별 윈도우의 합을 구하는 함수
  • MAX : 파티션별 윈도우의 최대값을 구하는 함수
  • MIN : 파티션별 윈도우의 최소값을 구하는 함수
  • AVG : 파티션별 윈도우의 평균값을 구하는 함수
  • COUNT : 파티션별 윈도우의 건수를 구하는 함수

2-3. 행 순서 함수

  • FIRST_VALUE : 파티션별 윈도우의 최초로 나온 값을 구하는 함수이며, MIN 함수를 활용하여 같은 결과를 얻을 수도 있다.
  • LAST_VALUE : 파티션별 가장 마지막에 나온 값을 구하는 함수이며, MAX 함수를 활용하여 같은 결과를 얻을 수도 있다.
  • LAG : 이전 몇 번째 행의 값을 구하는 함수
  • LEAD : 이후 몇 번째 행의 값을 구하는 함수

2-4. 비율 함수

  • RATIO_TO_REPORT : SUM(칼럼)값에 대한 행별 칼럼 값의 백분율을 소수점으로 구하는 함수
  • PERCENT_RANK : 행의 순서별 백분율을 구하는 함수
  • CUME_DIST : 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율을 구하는 함수
  • NTILE : 전체 건수를 ARGUMENT 값으로 N 등분한 결과값을 구하는 함수
profile
개발 관련 공부한 것을 기록합니다.🎈

0개의 댓글