Я получаю сообщение об ошибке "ОШИБКА: столбец" расстояние "не существует" ЛИНИЯ 2: ОТ "gps" ГДЕ расстояние <30; " - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть этот кусок кода 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

но это может особенно запутаться, если код длиннее этой широты + долготы

Я искал способ обойти это, но без решения

1 Ответ

0 голосов
/ 15 сентября 2018

Надеюсь, это поможет вам:

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