Im between cherry

SQL | 윈도우함수(window function)란 무엇인가? 본문

데이터분석/SQL

SQL | 윈도우함수(window function)란 무엇인가?

meal 2020. 10. 9. 00:06

윈도우 함수란

  • 행과 행 간의 관계를 정의하기 위해
  • 순위, 합계, 평균, 행 위치 등을 조작하기 위해
  • GROUP BY 구문과 병행하여 사용하지 않을 때

사용된다.

 

윈도우 함수 구조

SELCECT WINDOW_FUNCTION(ARGUMENTS)
	OVER (PARTITION BY 칼럼
    	ORDER BY WINDOWING절)
FROM 테이블명;

-> ARGUMENTS: 윈도우 함수에 따라 0~N개의 인수를 설정한다.

-> PARTITION BY: 전체 집합을 기준에 의해 소그룹으로 나눈다.

-> ORDER BY: 어떤 항목에 대해서 정렬하다.

-> WINDOWING: 행 기준 범위를 정한다. ROWS는 물리적 결과의 행 수이고, RANGE는 논리적인 값에 의한 범위이다.

 

  • SUM, MAX, MIN과 같은 집계 윈도우 함수를 사용할 때 윈도우 절과 함께 사용하면 집계 대상이 되는 레코드 범위를 지정할 수 있다.
  • WINDOW 함수의 PARTITION구문과 GROUP BY 구문은 둘 다 파티션을 분할한다는 의미에서 유사하다.
  • 윈도우 함수로 인해 결과 건수가 줄어들지는 않는다.

 

순위 함수(Rank Function)

- RANK: 동일한 순위는 동일한 값 부여 ex) 1, 2, 2, 4, 5, 6, ..

- DENSE_RANK: 동일한 순위를 하나의 건수로 계산 ex) 1, 2, 2, 3, 4, 5, 6, ..

- ROW_NUMBER: 동일한 순위에 대해서 고유의 순위를 부여 ex) 1, 2, 3, 4, 5 ..

 

집계 함수(Aggregate Function)

- Sum: 파티션 별로 합계

- Avg: 평균

- Count: 행 수 

- Max와 Min: 최댓값, 최솟값

 

 

Comments