Weather Observation Station 20 문제 바로가기
[문제]
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 4 decimal places.
=> LAT_N의 중앙값을 구하고 소수점 4자리까지 나타태는 쿼리 작성
[풀이]
MYSQL
- LAT_N 보다 큰 데이터 수와 LAT_N보다 작은 데이터 수가 같을 때 => 중앙값
SELECT ROUND(LAT_N,4)
FROM station s
WHERE (SELECT COUNT(*)
FROM STATION
WHERE LAT_N < s.LAT_N)
=(SELECT COUNT(*)
FROM STATION
WHERE LAT_N > s.LAT_N);
- 윈도우함수 PERCENT_RANK 사용
PERCENT_RANK 함수
: 맨 위 행을 0, 맨 아래(끝) 행을 1로 놓고
각 행에 대해 현재 행이 위치하는 백분위 순위값 반환.
반환값의 범위는 0보다 크거나 같고 1보다 작거나 같다. (0 <= x <=1)
반환 값 = (rank - 1) / (total row - 1)
SELECT ROUND(LAT_N,4)
FROM (SELECT LAT_N,
PERCENT_RANK() OVER (ORDER BY LAT_N ASC) per
FROM STATION) s2
WHERE per = 0.5
Oracle
- Median 함수 사용
SELECT ROUND(MEDIAN(Lat_N), 4)
FROM Station;
'SQL > MySQL 문제풀이' 카테고리의 다른 글
[HackerRank] The PADS ㅡ MySQL에서 푸는 방법 (0) | 2022.06.11 |
---|---|
[HackerRank] New Companies Solution (풀이) (0) | 2022.06.11 |
[HackerRank] Weather Observation Station 19 (풀이) (0) | 2022.06.11 |
[HackerRank] SQL Project Planning Solution(풀이) & DATEDIFF (0) | 2022.06.01 |
[HackerRank] Ollivander's Inventory Solution(풀이) (0) | 2022.06.01 |