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;
我有这段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;