MEDIAN

MEDIAN

값 집합의 중앙값(median)을 구하는 집계·윈도우 함수예요. 값의 개수가 홀수면 가운데 값을, 짝수면 두 가운데 값의 평균을 돌려줘요.

출처: 공식 문서

본문

값 집합의 중앙값을 결정합니다.

구문 (Syntax)

집계 함수 (Aggregate function)

MEDIAN( <expr> )

윈도우 함수 (Window function)

MEDIAN( <expr> ) OVER ( [ PARTITION BY <expr2> ] )

인자 (Argument)

expr

표현식은 숫자 데이터 타입(INTEGER, FLOAT, DECIMAL 또는 동등한 타입)으로 평가되어야 합니다.

반환값 (Returns)

입력에 따라 FLOAT 또는 DECIMAL(고정 소수점) 숫자를 반환합니다.

사용 참고 (Usage notes)

  • NULL이 아닌 값의 개수가 1 이상인 홀수이면, NULL이 아닌 값들의 중앙("가운데") 값을 반환합니다.
  • NULL이 아닌 값의 개수가 짝수이면 두 가운데 값의 평균과 같은 값을 반환합니다. 예를 들어 값이 1, 3, 5, 20이면 4(3과 5의 평균)를 반환합니다.
  • 모든 값이 NULL이면 NULL을 반환합니다.
  • NULL이 아닌 값의 개수가 0이면 NULL을 반환합니다.
  • 이 함수는 DISTINCT를 지원하지 않습니다.
  • 이 함수를 윈도우 함수로 호출하면 다음을 지원하지 않습니다:
    • OVER 절 안의 ORDER BY 절.
    • 명시적 윈도우 프레임.

예제 (Examples)

이 함수를 사용하는 방법을 보여줍니다.

빈 테이블을 만듭니다.

CREATE OR REPLACE TABLE aggr (k INT, v DECIMAL(10,2));

v 컬럼에 대한 MEDIAN 값을 구합니다. 행이 없으므로 함수는 NULL을 반환합니다.

SELECT MEDIAN(v)
  FROM aggr;
+------------+
| MEDIAN (V) |
|------------|
|       NULL |
+------------+

몇몇 행을 삽입합니다:

INSERT INTO aggr VALUES (1, 10), (1, 20), (1, 21);
INSERT INTO aggr VALUES (2, 10), (2, 20), (2, 25), (2, 30);
INSERT INTO aggr VALUES (3, NULL);

각 그룹의 MEDIAN 값을 구합니다. k = 2 그룹의 값 개수는 짝수이므로, 그 그룹의 반환값은 두 가운데 숫자 사이의 중간점이라는 점에 주의하세요.

SELECT k, MEDIAN(v)
  FROM aggr
  GROUP BY k
  ORDER BY k;
+---+-----------+
| K | MEDIAN(V) |
|---+-----------|
| 1 |  20.00000 |
| 2 |  22.50000 |
| 3 |      NULL |
+---+-----------+

더 알아보기 (Learn more)