집계 함수
분석 함수(Analytic Functions): SQL 쿼리의 성능을 한 단계 높이는 강력한 도구, 단순히 데이터를 처리하는 것을 넘어, 데이터 분석과 쿼리 최적화에 있어 핵심적인 역할을 함.
•
여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환
•
SELECT문과 HAVING문에서 사용
•
count(*) 를 제외한 모든 집계함수는 NULL값은 제외하고 집계
•
OVER과 함께 사용 가능
SELECT ANALYTIC_FUNCTION(args) OVER (
[PARTITION BY 컬럼]
[ORDER BY 컬럼]
[WINDOWING절(ROWS | RANGE BETWEEN)]
)
FROM 테이블명;
SQL
복사
◦
ANALYTIC FUNCTION: 분석함수명(입력인자)
◦
OVER: 분석함수임을 나타내는 키워드
◦
PARTITION BY: 계산 대상 그룹 지정 >>GROUP BY와 비슷한 역할. 이 구문이 없으면 전체 데이터에 대해 계산이 적용됨.
◦
ORDER BY: 대상 그룹에 대한 정렬 수행
◦
WINDOWING 절 : 분석함수의 계산 대상 범위 지정
(ORDER BY절에 종속적. 기본 생략 구문 : 정렬된 결과의 처음~현재행까지)
집계함수 : (컬럼명)기입 | 반환값 |
COUNT(*) | 복수 행의 ROW 개수 |
SUM(*) | 복수 행의 해당 컬럼간 합계 |
AVG(*) | 복수 행의 해당 컬럼간 평균 |
MAX(*) | 복수 행의 해당 컬럼간 최대값 |
MIN(*) | 복수 행의 해당 컬럼간 최소값 |
STDDEV(*) | 복수 행의 해당 컬럼간 표준편차 |
VARIANCE(*) | 복수 행의 해당 컬럼간 분산 |
주의사항
•
count(*) 를 제외하고 모든 집계함수는 null은 빼고 계산
•
sum, avg, stddev, variance: number 타입에만 사용가능.
•
min, max, count: 모든 타입에 다 사용가능.