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)
- PERCENTILE_CONT · PERCENTILE_DISC
- AVG — 평균
- 집계 함수