HACKERRANK 16일차

U_in_joy·2022년 7월 13일
0

SQL

목록 보기
16/16
post-thumbnail

Weather Observation Station 20

ORACLE에서는 있지만 MySQL에서는 없는 함수 -> MEDIAN()
이렇게 간단한 것을....



MySQL에는 따로 MEDIAN() 이라는 함수는 존재하지 않았다.

Median은 말 그대로 중간에 있는 값이다. 데이터의 숫자가 짝수냐 홀수냐에 따라 Median이 달라지기 때문에 일단 SET() 함수로 데이터의 숫자를 세주어야 한다.

SET @RowIndex = -1;
SELECT ROUND(LAT_N, 4) AS Median
FROM (SELECT @RowIndex:=@RowIndex+1 AS RowNumber, LAT_N
      FROM STATION
      ORDER BY LAT_N) AS SUB
WHERE RowNumber IN (FLOOR(@RowIndex / 2), CEIL(@RowIndex / 2))



AS SUB를 써주지 않으면 생기는 에러

또 다른 풀이

SELECT ROUND(LAT_N,4)
FROM(SELECT LAT_N, PERCENT_RANK() OVER (ORDER BY LAT_N) percent
     FROM STATION) a
WHERE percent = 0.5;
profile
끝까지 가자!

0개의 댓글