I am getting the Error "ERROR: column "distance" does not exist LINE 2: FROM "gps" WHERE distance < 30 ; "

I am getting the Error "ERROR: column "distance" does not exist LINE 2: FROM "gps" WHERE distance < 30 ; "

我有这段SQL代码:

 create table gps(id integer, latitude double, longitude double);
insert into gps(id, latitude, longitude) values(1, 2, 3);
insert into gps(id, latitude, longitude) values(1, 1, 1);
insert into gps(id, latitude, longitude) values(1, 1, 1);
insert into gps(id, latitude, longitude) values(1, 30, 1);

但我注意到代码在 MYSQL 上运行良好,但在 postgres 上抛出错误。

 ERROR:  column "distance" does not exist
LINE 6: HAVING  distance < 30

另一种选择是

SELECT * , latitude + longitude AS distance
FROM "gps"
GROUP BY id
HAVING  latitude + longitude < 30

但是如果代码比纬度 + 经度长,这会变得特别混乱

我一直在寻找绕过这个问题的方法,但没有解决方案

希望对您有所帮助:

SELECT *  FROM  
(
   SELECT id, latitude + longitude AS distance 
   FROM gps
) as a  
GROUP BY 1,2  
HAVING distance < 30;