MEDIAN¶
값 세트의 중앙값을 결정합니다.
구문¶
집계 함수
MEDIAN( <expr> )
윈도우 함수
MEDIAN( <expr> ) OVER ( [ PARTITION BY <expr2> ] )
인자¶
expr
식은 숫자 데이터 타입(
INTEGER
,FLOAT
,DECIMAL
또는 이와 동등한 것)으로 평가되어야 합니다.
반환¶
입력에 따라 FLOAT
또는 DECIMAL
(고정 소수점) 숫자를 반환합니다.
사용법 노트¶
NULL이 아닌 값의 수가 1보다 크거나 같은 홀수인 경우, NULL이 아닌 값의 중앙값(“중앙”) 값을 반환합니다.
NULL이 아닌 값의 수가 짝수인 경우, 중앙에 있는 두 값의 평균에 해당하는 값을 반환합니다. 예를 들어 값이 1, 3, 5, 20이면 4(3과 5의 평균)가 반환됩니다.
모든 값이 NULL인 경우, NULL을 반환합니다.
NULL이 아닌 값의 개수가 0인 경우, NULL을 반환합니다.
이 함수에는 DISTINCT가 지원되지 않습니다.
윈도우 함수로 사용되는 경우:
이 함수는 다음을 지원하지 않습니다.
OVER() 절의 ORDER BY 하위 절.
윈도우 프레임.
예¶
이는 함수를 사용하는 방법을 보여줍니다.
빈 테이블을 만듭니다.
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 | +---+-----------+