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;