2016-05-30 4 views
0

Я создаю литерал внутри своего запроса select, и в конце я пытаюсь использовать having, чтобы найти результаты, имеющие distance < 50000.Postgres column "distance" не существует

Исходя из фона MySql, я думаю, что этот вопрос должен Работа.

SELECT "description", 
     "location", 
     ST_Distance_Sphere(location, ST_MakePoint(-126.4,45.32)) AS "distance" 
FROM "news_agencies" AS "news_agencies" 
HAVING distance < 50000; 

Я также попытался добавить котировки вокруг текста having >>>"distance"<<<. Если я удалю 'having distance < 50000', мой запрос выполняется нормально и вычисляет расстояние. Вот моя ошибка:

column "distance" does not exist 

ответ

2

Вы не можете использовать псевдоним в предложении having. Попробуйте следующее:

select * from 
(
SELECT "description", "location", 
ST_Distance_Sphere(location, ST_MakePoint(-126.4,45.32)) AS "distance" 
FROM "news_agencies" AS "news_agencies") t 
where distance < 50000; 
Смежные вопросы