SQL

[mysql] Weather Observation Station 20

김랑해 2024. 5. 3. 15:08

https://www.hackerrank.com/challenges/weather-observation-station-20/problem?isFullScreen=true

 

Weather Observation Station 20 | HackerRank

Query the median of Northern Latitudes in STATION and round to 4 decimal places.

www.hackerrank.com

 

 

문제 자체는 쉽다

LAT_N의 중앙값을 구하면 된다

다만 mysql은 median() 함수를 지원하지 않는다.

그래서 mysql에서는 percent_rank() 함수를 활용해야 한다.

 

PERCENT_RANK() OVER(ORDER BY A ) AS 별칭

이렇게 지정해주면 된다 그럼 A열을 기준으로 정렬을 한 뒤 0~1사이의 백분율 값을 별칭이라는 열에 만들어준다

 

몰라서 지피티한테 물어봄

 

 

암튼 그래서 코드를 짜보면

SELECT ROUND(LAT_N,4)
FROM (SELECT LAT_N, PERCENT_RANK() OVER (ORDER BY LAT_N ASC) AS PERCENT
      FROM STATION) AS S
WHERE S.PERCENT = 0.5;

이렇게 된다

 

LEARNING POINT
1. mysql에서 중앙값을 구하려면 percent_rank() 함수를 이용하여 백분율이 0.5인 것을 찾아내면 된다