Home 9. 집계함수
Post
Cancel

9. 집계함수

집계 함수는 다중 값을 단일 값으로 집계하는 함수다. 다중 행을 입력받아 단일 행을 반환하기 때문에 다중 행 함수로 부르기도 한다. 집계 함수는 기능과 용도에 따라 기본 함수, 통계 함수, 순위 함수, 분포 함수, 기타 함수로 구분할 수 있다.

9.1 기본 함수

  • COUNT - 전체 행의 개수나 expr의 개수를 반환한다. 행이 없거나 모두 널이면 0을 반환한다.
    1
    2
    3
    
    COUNT(*) - 전체 행의 개수를 반환
    COUNT(expr) - 널이 아닌 expr의 개수를 반환
    COUNT(DISTINCT expr) - 널이 아닌 expr의 고유한 개수를 반환
    
  • MIN - expr의 최저 값을 반환한다. COUNT 함수 이외의 기본 함수는 expr이 모두 널이면 널을 반환한다.
  • MAX - expr의 최고 값을 반환한다.
  • SUM - expr의 합계 값을 반환한다. expr은 숫자 값만 입력할 수 있다.
  • AVG - expr의 평균 값을 반환
    1
    2
    3
    
    -- null 포함 여부에 따라 평균 값이 달라진다.
    SELECT AVG(comm) AS c1, AVG(NVL(comm, 0)) AS c2
    FROM empl
    

집계 함수를 사용한 쿼리는 WHERE 절을 만족하는 행이 없더라도 하나의 행을 반환한다.

9.2 통계 함수

통계 함수는 통계와 관련된 값을 집계한다.

  • STDDEV - 표준편차를 반환
  • VARIANCE - expr의 분산을 반환
  • STATS_MODE - expr의 최빈값을 반환

186~187p

9.3 순위 함수

순위 함수는 가상의 행을 생성하고, 가상의 행에 해당하는 순위를 반환한다.

  • RANK - expr에 대한 순위를 반환하고, expr이 동일하면 동순위를 부여하고, 다음 순위는 동순위의 수만큼 건너뛴다.
  • DENSE_RANK - expr에 대한 순위를 반환, expr이 동일하면 동순위를 부여하고 다음 순위는 동순위에 이어서 부여한다.
  • CUME_DIST - expr의 누적분포 값을 반환한다. (0 < y <= 1)
  • PERCENT_RANK - expr의 백분위 순위 값을 반환한다. (0 <= y <= 1)

9.4 분포 함수

  • PERCENTILE_CONT - 연속 분포 모형에서 expr에 해당하는 백분위 값을 반환한다. (expr 0~1)
  • PERCENTILE_DISC - 이산 분포 모형에서 expr에 해당하는 백분위 값을 반환한다. (expr 0~1)
  • MEDIAN - 연속 분포 모형의 중앙값을 반환

9.5 기타 함수

LISTAGG : LISTAGG(measure_expr [, 'delimiter'][listagg_overflow_clause]) WITHIN GROUP(order_by_clause)

measure_expr를 order_by_clause으로 정렬한 후 delimiter로 구분하여 연결한 값을 반환한다.

9.6 KEEP 키워드

행 그룹의 최저 또는 최고 순위 행으로 집계를 수행할 수 있다.

This post is licensed under CC BY 4.0 by the author.