SQL/개념
MEDIAN 함수
데이터분석가 이채은
2024. 12. 5. 12:56
MEDIAN 함수란?
"MEDIAN"은 주어진 데이터 집합을 정렬했을 때 가운데에 위치하는 값을 의미합니다. SQL에서는 중앙값을 구하는 표준 함수가 없지만, 특정 DBMS(PostgreSQL, Oracle, etc.)는 MEDIAN 함수를 제공하기도 합니다.
MEDIAN 계산 방식
- 홀수 개의 데이터:
- 정렬된 데이터에서 정확히 가운데에 위치한 값이 중앙값.
- 예: [1, 3, 5, 7, 9] → 중앙값은 5.
- 짝수 개의 데이터:
- 정렬된 데이터에서 가운데 두 값의 평균이 중앙값.
- 예: [1, 3, 5, 7] → 중앙값은 (3 + 5) / 2 = 4.
MEDIAN 구하기
SQL에는 기본적으로 MEDIAN 함수가 없기 때문에 중앙값을 계산하려면 창 함수(Window Function)와 정렬을 사용해야 합니다.
예제
WITH OrderedSalaries AS (
SELECT
salary,
ROW_NUMBER() OVER (ORDER BY salary) AS row_num,
COUNT(*) OVER () AS total_rows
FROM Employees
)
SELECT
AVG(salary) AS median
FROM OrderedSalaries
WHERE row_num IN (
FLOOR((total_rows + 1) / 2), -- 가운데 값 (홀수일 때)
CEIL((total_rows + 1) / 2) -- 두 값 중 하나 (짝수일 때)
);
결과:
- 데이터: [1000, 2000, 3000, 4000, 5000]
- 중앙값: 3000