Friday, March 29, 2019

REALLY GOOD way of getting a median from a MYSQL query

SET @r = 0;

SELECT ROUND(AVG(LAT_N), 4) FROM (SELECT LAT_N, (@r := @r + 1) AS r FROM STATION ORDER BY LAT_N)  TEMP                             
WHERE
  r = (SELECT CEIL(COUNT(*) / 2) FROM STATION) OR
  r = (SELECT FLOOR(COUNT(*) / 2 + 1) FROM STATION)

No comments:

Post a Comment