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
Field | Type |
ID | NUMBER |
CITY | VARCHAR2(21) |
STATE | VARCHAR2(2) |
LAT_N | NUMBER |
LONG_W | NUMBER |
STATION 테이블:
- ID: 테이블의 고유 키
- CITY : 도시의 이름
- STATE : 주의 이름
- LAT_N : 위도
- LONG_W : 경도
중앙값(median)은 데이터 집합의 상위 절반과 하위 절반을 나누는 숫자로 정의됩니다. STATION 테이블에서 북위(LAT_N)의 중앙값을 쿼리하고, 답변을 소수점 4자리까지 반올림하세요.
select
LAT_N,
percent_rank() over (order by LAT_N) percent
from STATION
먼저 LAT_N에 대해서 전체에서 몇%에 해당하는 데이터인지를 구한다.
select round(LAT_N, 4)
from
(select
LAT_N,
percent_rank() over (order by LAT_N) percent
from STATION ) a
where percent = 0.5;
해당 데이터에서 LAT_N가 0.5(즉, 50%)에 해당하는 값 = 중앙값을 구하고 소수점 4자리까지 반올림을 해서 출력한다.
mysql은 중앙값계산을 지원하는 내장함수가 없기때문에 percent_rank()라는 함수를 사용해서 원하는 데이터가 어느정도 구간에 위치하는지를 계산해서 중앙값을 구했다.
'코딩일기' 카테고리의 다른 글
알고리즘 코드카타 115 - 호텔 대실 (2) | 2024.07.23 |
---|---|
SQL 코드카타 171 - The Report (2) | 2024.07.23 |
SQL 코드카타 169 - New Companies (0) | 2024.07.22 |
SQL 코드카타 168 - Binary Tree Nodes (0) | 2024.07.21 |
SQL 코드카타 167 - Average Population of Each Continent (0) | 2024.07.21 |