Le HAVING
La clause est utilisée pour filtrer des groupes de lignes. Vous faites référence à min(a)
et max(a)
qui (en l'absence de tout GROUP BY
clause) agrégat sur tous les a
valeurs dans le tableau, mais utilisez ensuite une comparaison avec un seul a
valeur.
Alors, quel a
la valeur MySQL est-elle censée utiliser ? Tous les autres RDBMS que je connais généreraient une erreur à ce stade, mais MySQL le permet. De la documentation
Donc, dans votre cas, d'après les résultats que vous obtenez, il semble qu'il a fini par utiliser 1
comme valeur scalaire pour a
mais ce comportement n'est pas garanti et il aurait tout aussi bien pu utiliser 2
ou tout autre a
existant valeur.