Tags
- delete
- 트리
- 뷰
- ORM
- Vue
- update
- 완전검색
- 쟝고
- M:N
- stack
- drf
- outer join
- create
- distinct
- migrations
- regexp
- DB
- 큐
- Article & User
- SQL
- 통계학
- 그리디
- Tree
- 이진트리
- N:1
- Django
- 스택
- count
- Queue
- 백트래킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
MEDIAN 함수 본문
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