-
[HackerRank] Weather Observation Station 20mySQL 2023. 2. 26. 13:15
Weather Observation Station 20 | HackerRank
Query the median of Northern Latitudes in STATION and round to 4 decimal places.
www.hackerrank.com
SELECT ROUND(LAT_N, 4) FROM STATION AS S WHERE (SELECT COUNT(*) FROM STATION WHERE LAT_N<S.LAT_N)= (SELECT COUNT(*) FROM STATION WHERE LAT_N>S.LAT_N)
중앙값(Median)을 찾는 문제다. 엑셀 같은 곳에는 MEDIAN 함수가 제공되고 DBMS의 경우에도 Oracle은 MEDIAN 함수를 제공한다. 하지만 MySQL은 MEDIAN을 제공하지 않는다. 그러므로 MEDIAN을 우리가 직접 구현해야 한다.
MEDIAN의 사전적 정의는 다음과 같다.
"어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미한다. 예를 들어 1, 2, 100의 세 값이 있을 때, 2가 가장 중앙에 있기 때문에 2가 중앙값이다."
그러므로 우리는 전체 값들 중 특정 값을 기준으로 했을 때 '그 값보다 작은 값의 갯수=그 값보다 큰 값의 갯수' 인 값을 찾아 그 값을 반올림해서 표기해야 한다. 해당 조건이 WHERE 절에 있는 서브쿼리들이다.
같은 문제를 푸는 방식 중 PERCENT_RANK()를 활용하는 경우도 있었다.
https://velog.io/@yeahxne/SQLHackerRankWeather-Observation-Station-20
[SQL][HackerRank]Weather Observation Station 20
🔊본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다.https://www.hackerrank.com/challenges/weather-observation-station-20/problem?isFullScreen=false🎈조
velog.io
MEDIAN이 없어서 조금 당황했던 문제였다.
'mySQL' 카테고리의 다른 글
[HackerRank] Top Earners (0) 2023.02.27 [HackerRank] The Blunder (0) 2023.02.27 [HackerRank] Weather Observation Station 19 (0) 2023.02.26 [HackerRank] Weather Observation Station 18 (0) 2023.02.26 [HackerRank] Type of Triangle (0) 2023.02.23