Devi inserire tutte le colonne di SELECT nel GROUP BY oppure usa funzioni su di essi che comprimono i risultati in un singolo valore (come MIN , MAX o SUM ).
Un semplice esempio per capire perché questo accade:Immagina di avere un database come questo:
FOO BAR
0 A
0 B
ed esegui SELECT * FROM table GROUP BY foo . Ciò significa che il database deve restituire una singola riga come risultato con la prima colonna 0 per soddisfare il GROUP BY ma ora ci sono due valori di bar tra cui scegliere. Quale risultato ti aspetteresti:A o B ? Oppure il database dovrebbe restituire più di una riga, violando il contratto di GROUP BY ?