2010-09-10 15 views

Répondre

0

Peut être:

select xx as fieldA from ... where fieldA is not null group by xxx having 

vous aider

+0

Cela ne fonctionnera pas car les alias ne sont pas disponibles dans 'GROUP BY'. (Ils sont dans "ORDER BY" et "HAVING"). Passer à 'WHERE fieldA IS NOT NULL' changerait le nombre de lignes groupées, en changeant éventuellement l'intention originale. –

0

Vous devrait inclure toutes les colonnes non agrégées dans le GROUP BY. 5.7.5 a introduit le SQL_MODE de only_full_group_by pour faire respecter ce (sans se plaindre de certains cas où il est effectivement OK).

Lorsque vous avez une colonne non agrégée, le code est libre de fournir toute valeur qu'il aime pour une telle colonne (xx dans votre cas). Compte tenu de cela, comment le HAVING pourrait-il avoir un sens rationnel?

Ce n'est pas un bogue; c'est une erreur de l'utilisateur.