반응형
A median is defined as a number separating the higher half of a data set from the lower half. Query the median of the Northern Latitudes (LAT_N) from STATION and round your answer to decimal places.
Input Format
The STATION table is described as follows:

SELECT ROUND(AVG(LAT_N), 4)
FROM (
SELECT LAT_N,
ROW_NUMBER() OVER(ORDER BY LAT_N ASC) AS RN,
COUNT(*) OVER() AS Total_Rows FROM STATION) AS SUB_QUERY
WHERE RN = CEIL(Total_Rows/2) OR RN = FLOOR(Total_Rows/2)+1;
ROW_NUMBER() OVER(ORDER BY LAT_N ASC) AS RN
- LAT_N을 오름차순으로 정렬하면서 각 행에 1부터 순서를 붙입니다.
LAT_N | RN
23.1 | 1
24.7 | 2
25.3 | 3
COUNT(*) OVER() AS Total_Rows
- 전체 행의 개수를 모든 행에 같이 붙입니다.
LAT_N | RN | Total_Rows
23.1 | 1 | 5
24.7 | 2 | 5
...
WHERE RN = CEIL(Total_Rows/2) OR RN = FLOOR(Total_Rows/2)+1;
이 부분이 중앙에 해당하는 행만 골라내는 조건입니다.
예시 1: 홀수 개 (예: 5개)
- CEIL(5/2) → 3
- FLOOR(5/2) + 1 → 2 + 1 = 3
- → RN = 3만 선택됨 (가운데 값)
예시 2: 짝수 개 (예: 6개)
- CEIL(6/2) → 3
- FLOOR(6/2) + 1 → 3 + 1 = 4
- → RN = 3 또는 4인 행 선택됨 (두 값의 평균)
반응형
'Computer Science > SQL' 카테고리의 다른 글
SQL | HackerRank 코딩 대회에서 여러 문제를 만점 받은 참가자 찾기 (2) | 2025.06.20 |
---|---|
SQL | HackerRank 성적에 따라 이름을 보여주는 리포트 만들기 CASE WHEN (0) | 2025.06.19 |
SQL | HackerRank 평균 오차 구하기 (Replace) (0) | 2025.06.17 |
SQL | HackerRank 이진 트리 노드 유형(Root, Inner, Leaf) 구분하는 쿼리 (0) | 2025.06.16 |
SQL | HackerRank MAX(CASE WHEN…)을 활용한 피벗(Pivot) 쿼리 (0) | 2025.06.15 |