Исключить подзапрос для среднего числового значения
поиск
Запрос выбирает все точки, начинающиеся с «Ванкувер», и находятся в пределах 5-минутной зоны от центра всех местоположений, начинающихся с «Ванкувер». Например, Ванкуверский Южный Фрейзер, Ванкуверский Фэрвью и Ванкуверский Баллантри Плэйс W имеют широту и долготу в пределах 5 минут от их средней широты и долготы. Широты и долготы хранятся в виде (4915, 12311) целочисленных пар (что означает 49,15'N и 123,11'W).
Код SQL
Следующая мерзость SQL делает свое дело:
SELECT
NAME
FROM
STATION
WHERE
DISTRICT_ID = '110'
AND NAME LIKE 'Vancouver%'
AND LATITUDE BETWEEN
(SELECT round((min(LATITUDE) + max(LATITUDE)) / 2)-5 FROM STATION WHERE DISTRICT_ID = '110' AND NAME LIKE 'Vancouver%')
and
(SELECT round((min(LATITUDE) + max(LATITUDE)) / 2)+5 FROM STATION WHERE DISTRICT_ID = '110' AND NAME LIKE 'Vancouver%')
AND LONGITUDE BETWEEN
(SELECT round((min(LONGITUDE) + max(LONGITUDE)) / 2)-5 FROM STATION WHERE DISTRICT_ID = '110' AND NAME LIKE 'Vancouver%')
and
(SELECT round((min(LONGITUDE) + max(LONGITUDE)) / 2)+5 FROM STATION WHERE DISTRICT_ID = '110' AND NAME LIKE 'Vancouver%')
ORDER BY
LATITUDE
Вопрос
Как можно упростить этот запрос, чтобы удалить избыточность без использования представления?
ограничения
База данных MySQL, но ANSI SQL всегда хорош.
Спасибо!