1. 시도한 답 (하기 블로거님 포스팅 참조)
SET @rowIndex=-1;
SELECT ROUND(lat_n, 4)
FROM(SELECT @rowIndex:=@rowIndex+1 AS rownumber,
lat_n
FROM station
ORDER BY lat_n) sub
WHERE rownumber IN (FLOOR(@rowIndex/2), CEIL(@rowIndex/2))
2. 어려웠던 이유
-SET 함수를 사용하여 Row 에 Index 를 주는 개념을 몰랐음
-SQL 에서는 내림, 올림을 하는 함수가 FlOOR, CEIL 이라는 함수가 있다는 것을 몰랐음
-왜 MEDIAN 함수가 없는 것인가...ㅠㅠ
3. 최초 시도한 답...
SELECT ROUND(LAT_N, 4)
FROM STATION
WHERE COUNT(LAT_N)/2 = (SELECT RANK() OVER (ORDER BY LAT_N DESC) FROM STATION);
참고>>
https://techblog-history-younghunjo1.tistory.com/160?category=962943
[SQL] MySQL로 중앙값(Median) 찾아내기 - (HackerRank - Weather Observation Station 20 문제)
🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 MySQL을 활용해 Median값을 출
techblog-history-younghunjo1.tistory.com
'데이터관련공부 > SQL' 카테고리의 다른 글
[HackerRank] SQL - The Report (0) | 2022.06.17 |
---|---|
[HackerRank] SQL - Type of Triangle (다시 시도할 것!) (0) | 2022.06.16 |
[HackerRank] SQL - Weather Observation Station 19 (0) | 2022.06.01 |
[HackerRank] SQL - Weather Observation Station 18 (0) | 2022.05.31 |
[HackerRank] SQL - Top Earners (0) | 2022.05.26 |