#Format : LIMIT s-1, t - (s - 1)
SELECT COALESCE(ROUND(AVG(val), 4), 'NULL')
FROM (SELECT CASE WHEN 'lon' = 'lat' THEN lat ELSE lon END AS val, @rownum:=@rownum+1 AS idx, @total_rows:=@rownum
FROM citytable x, (SELECT @rownum:=0) r
WHERE CASE WHEN 'lon' = 'lat' THEN x.lat ELSE x.lon END is NOT NULL
AND id % 10 = 8 ORDER BY CASE WHEN 'lon' = 'lat' THEN x.lat ELSE x.lon END ASC LIMIT 34, 1667) AS y
WHERE y.idx IN(FLOOR((@total_rows + 1) / 2), FLOOR((@total_rows + 2) / 2));