문제
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.
Input Format
The STATION table is described as follows:
where LAT_N is the northern latitude and LONG_W is the western longitude.
코드
select round(avg(lat_n),4)
from (select lat_n, row_number() over (order by lat_n) rn, count(1) over() + 1 cnt from station) as tmp
where tmp.rn between floor(cnt/2) and ceil(cnt/2)
group by tmp.rn
- 중위값은 데이터 세트의 상위 반과 하위 반을 구분하는 숫자
- 위도(LAT_N)의 중위값을 소수점 4자리까지 반올림하여 출력
- SQL은 MDEIAN() 함수가 있어서 MySQL도 있을 줄 알았는데 없었다 ^^ 직접 만들어야함!
- 중위값의 조건은 표본의 개수(n)가 홀수일 때 → (n+1)/2 번째 값, 짝수일 때 → (n/2, n/2+1)번째 값의 평균
- 아무리 해봐도 중위값 조건에서 막혀서 풀이법을 찾아봤다 ^^ 참고사이트
- 일주일 후에 한 번 더 풀어보기
출처
반응형
'Algorithm > MySQL' 카테고리의 다른 글
[해커랭크(HackerRank)] Placements (MySQL) (0) | 2021.07.12 |
---|---|
[해커랭크(HackerRank)] Weather Observation Station 3 (MySQL) (0) | 2021.07.12 |
[해커랭크(HackerRank)] Weather Observation Station 19 (MySQL) (0) | 2021.07.10 |
[해커랭크(HackerRank)] New Companies (MySQL) (0) | 2021.07.09 |
[해커랭크(HackerRank)] Binary Tree Nodes (MySQL) (0) | 2021.07.08 |