2016-05-30 6 views
0

selectクエリ内にリテラルを作成していますが、最後にhavingを使用してdistance < 50000の結果を検索しようとしています。Postgresの列「距離」が存在しません

背景: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; 
関連する問題