Это именно так, как говорит ошибка.Ваши столбцы ORDER BY
должны изначально совпадать с столбцами DISTINCT ON
, и после этого вы можете упорядочить любые другие элементы.Итак:
SELECT distinct on(city::text || ', ' || state::text) latitudes, longitudes
FROM zips
ORDER BY city::text || ', ' || state::text, ABS(28.458414 - latitudes) + ABS(-81.395258-longitudes)
limit 5
Я не понимаю, почему вы бы связали эти поля, хотя в DISTINCT ON
он, похоже, не служит какой-либо цели, поскольку он будет таким же «уникальным», как указаниеколонки индивидуально, что было бы более производительным.Итак:
SELECT distinct on(city, state) latitudes, longitudes
FROM zips
ORDER BY city, state, ABS(28.458414 - latitudes) + ABS(-81.395258-longitudes)
limit 5
Имейте в виду, что указание столбцов в DISTINCT ON
не возвращает эти столбцы, поэтому ваш запрос в настоящее время будет возвращать только latitudes, longitudes
без какой-либо информации о городе или штате.