Pergunta

Ao executar em ONLY_FULL_GROUP_BY Modo, eu recebo o erro "não agrupar-campo 'distância' é usado em TER cláusula" ao executar a seguinte consulta. A consulta conta a quantidade de hotéis que estão dentro de 15 km de distância de uma determinada latitude e longitude. Existe uma maneira de reescrever essa consulta para que eu não recebo o erro mais no ONLY_FULL_GROUP_BY Modo?

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
Foi útil?

Solução

Alterar o TENDO a um adicional cláusula WHERE:

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

Eu não tenho certeza se MySQL suporta usando o nome da coluna alias na cláusula WHERE (distance neste caso). Se não, basta alterá-lo para:

AND (foo * 100) < 15
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top