Я пытаюсь выполнить следующий запрос в SQLite 3:
SELECT *,
DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
HAVING "distance" <= ?
ORDER BY "distance" ASC;
Но я получаю следующую ошибку:
SQLSTATE [HY000]: общая ошибка: 1 требуется предложение GROUP BY перед HAVING
Я не понимаю, почему SQLite хочет, чтобы я группировал результаты, но все же я попробовал следующее:
SELECT *,
DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
GROUP BY "id"
HAVING "distance" <= ?
ORDER BY "distance" ASC;
И я также пробовал это:
SELECT *,
DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
GROUP BY "distance"
HAVING "distance" <= ?
ORDER BY "distance" ASC;
Ошибок нет, но все записи возвращены (даже имеющие "distance" > ?
). Я также пытался сделать:
SELECT *,
DISTANCE(latitude, longitude, ?, ?) AS "distance"
FROM "country"
WHERE "id" NOT LIKE ?
AND "distance" <= ?
ORDER BY "distance" ASC;
Тот же вывод, все записи были возвращены. Я дважды проверил - расстояние рассчитывается правильно... Я понятия не имею, что не так с этим запросом, может кто-нибудь мне помочь?