median()

표현식이 반환하는 값들의 중앙값(50번째 백분위수)을 계산합니다.

문법

median(EXPR [, INTERPOLATION])

매개변수

EXPR
중앙값을 구할 값을 반환하는 표현식.
INTERPOLATION
(선택) 정확히 중앙 위치에 데이터가 없을 때 인접한 두 값을 처리하는 방식. 기본값은 "linear"입니다.
  • "linear": 두 값 사이의 위치에 따른 가중 평균을 계산합니다.
  • "midpoint": 두 값의 평균을 계산합니다.
  • "lower": 두 값 중 더 작은 값을 선택합니다.
  • "higher": 두 값 중 더 큰 값을 선택합니다.
  • "nearest": 두 값 중 중앙 위치에 더 가까운 값을 선택합니다.

설명

median() 함수는 내부적으로 percentile(EXPR, 50.0 [, INTERPOLATION])과 동일하게 동작합니다. 전체 값을 정렬한 후 50번째 백분위에 해당하는 값을 반환합니다. null 값은 무시됩니다. 숫자가 아닌 값도 정렬하여 중앙값을 구할 수 있으나, 보간(INTERPOLATION) 계산은 숫자에만 적용됩니다.

stats, timechart 등 집계 명령어에서 사용합니다.

median() 함수는 내부적으로 외부 병합 정렬(external merge sort)을 사용합니다. 그룹 내 값을 모두 수집하여 정렬한 후 중앙 위치의 값을 읽으므로, 처리하는 레코드 수에 비례하여 메모리와 임시 디스크 공간을 사용합니다.

오류 코드

코드설명
91020필수 매개변수가 누락되었거나 인자가 올바르지 않습니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 전체 요청의 응답 크기 중앙값 계산

    table WEB_APACHE_SAMPLE | stats median(bytes)
    
  2. HTTP 메서드별 응답 크기 중앙값 계산

    table WEB_APACHE_SAMPLE | stats median(bytes) by method
    
  3. midpoint 보간 옵션 사용

    table WEB_APACHE_SAMPLE | stats median(bytes, "midpoint") by method
    
  4. NULL 값 처리

    json "[{'val': 10}, {'val': null}, {'val': 30}]"
    | stats median(val)
    | # median(val): 20
    

호환성

median() 함수는 소나 4.0.2404.0-u3072부터 사용 가능합니다.