출처
문제
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 decimal places 4.
Input Format
문제에 대한 해석
LAT_N의 중간값을 4쨰자리까지 표현하라
중간값 > 수를 나열했을때 50%의 부분
풀이(MYSQL)
WITH tmp as (
SELECT
lat_n ,
PERCENT_RANK() OVER( order by lat_n ) as percent
FROM STATION
)
SELECT ROUND(lat_n,4)
FROM tmp
WHERE percent = 0.5
풀이(ORACLE)
SELECT ROUND(MEDIAN(LAT_N),4)
FROM STATION
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- WITH 절:
- lat_n 와
- lat_n의 순서로 백분위수 순위를 계산하여 조회하여 percent 컬럼에 저장
- FROM 절 : 임시테이블에서
- WHERE 절: percent 가 0.5인 경우 필터링 하여
- SELECT 절: lat_n를 4째자리까지 반올림하여 조회
배운점
- mysql에는 중간값 구하는 함수가 없다..
- PERCENT_RANK() :함수는 행의 백분위수 순위를 계산하는 상대 순위 함수
- > PERCENT_RANK() OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
- PERCENT_RANK()를 통해 해당 값이 상위 몇 %에 있는지 계산하여 0.5 지점을 찾는 다
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] Hacker Rank - Top Competitors (0) | 2024.06.11 |
---|---|
[문제풀이] Hacker Rank - THE REPORT (0) | 2024.06.11 |
[문제풀이] Hacker Rank - Binary Tree Nodes (1) | 2024.06.10 |
[문제풀이] Hacker Rank - Weather Observation Station 18, 19 (0) | 2024.06.08 |
[문제풀이] Hacker Rank - Weather Observation Station 17 (0) | 2024.06.07 |