문제
STATION 테이블에서 LAT_N 컬럼의 중앙값을 구하고, 그 값을 소수점 4자리까지 반올림하여 나타내기
포인트 👉 mySQL에는 중앙값을 구하는 MEDIUM() 함수가 없다. 이를 참고하여 풀어보자
(MEDIUM 함수는 오라클에 있음!)
풀이
✨ PERCENT_RANK()
- SQL에서 사용되는 윈도우 함수 중 하나로, 정렬된 결과 집합에서 각 행의 백분위 순위를 계산하는 데 사용한다
- 0과 1 사이의 값을 반환하며, 이 값은 주어진 행이 정렬된 순서에서 어느 위치에 있는지를 나타낸다
- 0은 가장 낮은 값이고 1은 가장 높은 값
👉 예를 들어, PERCENT_RANK 가 0.2인 행은 정렬된 결과에서 하위 20%에 위치하고, 0.8인 행은 상위 80%에 위치
- LAT_N을 내림차순 정렬하여 PERCENT_RANK 함수를 적용
- 해당 컬럼이 포함된 서브쿼리를 기반으로 percent가 0.5인 중앙값을 where 절에 조건으로 걸어준다
SELECT ROUND(LAT_N, 4)
FROM (SELECT LAT_N, PERCENT_RANK() OVER(ORDER BY LAT_N ASC) as PERCENT
FROM STATION) A
WHERE PERCENT = 0.5;
728x90
'SQL > SQL test' 카테고리의 다른 글
[HackerRank] The Report (INNER JOIN - BETWEEN) (0) | 2024.01.15 |
---|---|
[HackerRank] Weather Observation Station 5(UNION) (1) | 2024.01.15 |
[BigQuery] 현업 문제 해결 쿼리 작성(4) : 성과 확인(A/B test) (1) | 2024.01.14 |
[BigQuery] 현업 문제 해결 쿼리 작성(3) : 인사이트 적용 (0) | 2024.01.09 |
[BigQuery] 현업 문제 해결 쿼리 작성(2) : 인사이트 적용 전, 지표 분석 (2) | 2024.01.08 |