Как избавиться от негруппирующего поля в предложении HAVING

StackOverflow https://stackoverflow.com/questions/1458864

  •  12-09-2019
  •  | 
  •  

Вопрос

При выполнении в ONLY_FULL_GROUP_BY ЕДИНСТВЕННАЯ_ГРУППА_BY режиме, я получаю сообщение об ошибке "негруппирующее поле "расстояние" используется в ИМЕЯ предложение" при выполнении следующего запроса.Запрос подсчитывает количество отелей, которые находятся в пределах 15 км от определенной широты и долготы.Есть ли способ переписать этот запрос, чтобы я больше не получал ошибку в ONLY_FULL_GROUP_BY ЕДИНСТВЕННАЯ_ГРУППА_BY режим?

SELECT count(id) as total, (foo * 100) AS 'distance'
FROM `hotels` 
WHERE `lng` between 4.56 and 5.08 and `lat` between 52.22 and 52.65 
HAVING `distance` < 15
Это было полезно?

Решение

Измените значение HAVING на дополнительное предложение WHERE:

WHERE `lng` BETWEEN 4.56 AND 5.08 AND `lat` BETWEEN 52.22 AND 52.65 
AND `distance` < 15

Я не уверен, поддерживает ли MySQL использование псевдонимного имени столбца в предложении WHERE (distance в данном случае).Если нет, просто измените его на:

AND (foo * 100) < 15
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top