Eliminar subconsulta para el valor numérico promedio
Búsqueda
La consulta selecciona todos los puntos que comienzan con "Vancouver" y se encuentran dentro de un área de 5 minutos desde el centro de todas las ubicaciones que comienzan con "Vancouver". Por ejemplo, Vancouver South Fraser, Vancouver Fairview y Vancouver Ballantree Place W tienen latitudes y longitudes dentro de los 5 minutos de su latitud y longitud promedio. Las latitudes y longitudes se almacenan como (4915, 12311) pares enteros (es decir, 49.15'N y 123.11'W).
Código SQL
La siguiente abominación SQL hace el truco:
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
Pregunta
¿Cómo se puede simplificar esta consulta para eliminar la redundancia, sin usar una vista?
Restricciones
La base de datos es MySQL, pero ANSI SQL siempre es agradable.
¡Gracias!