Il HAVING
La clausola viene utilizzata per filtrare gruppi di righe. Fai riferimento a min(a)
e max(a)
che (in assenza di qualsiasi GROUP BY
clausola) aggregati su tutti i a
valori nella tabella, ma poi usa un confronto con un singolo a
valore.
Quindi quale a
valore dovrebbe usare MySQL? Tutti gli altri RDBMS che conosco genererebbero un errore a questo punto, tuttavia MySQL lo consente. Dai documenti
Quindi nel tuo caso dai risultati che stai ricevendo sembra che abbia finito per usare 1
come valore scalare per a
ma questo comportamento non è garantito e potrebbe anche aver usato 2
o qualsiasi altro a
esistente valore.