Как уйти с не группирующего поля в предложении HAVING - PullRequest
1 голос
/ 22 сентября 2009

При выполнении в режиме ONLY_FULL_GROUP_BY я получаю сообщение об ошибке «Поле не группирования« расстояние »используется в HAVING предложение» при выполнении следующего запроса. Запрос подсчитывает количество отелей, которые находятся на расстоянии 15 км от определенной широты и долготы. Есть ли способ переписать этот запрос, чтобы я больше не получил ошибку в режиме ONLY_FULL_GROUP_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

1 Ответ

0 голосов
/ 22 сентября 2009

Измените 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
...