Du skal indsætte alle kolonner i SELECT i GROUP BY eller brug funktioner på dem, som komprimerer resultaterne til en enkelt værdi (såsom MIN , MAX eller SUM ).
Et simpelt eksempel for at forstå, hvorfor dette sker:Forestil dig, at du har en database som denne:
FOO BAR
0 A
0 B
og du kører SELECT * FROM table GROUP BY foo . Dette betyder, at databasen skal returnere en enkelt række som resultat med den første kolonne 0 for at opfylde GROUP BY men der er nu to værdier af bar at vælge imellem. Hvilket resultat ville du forvente - A eller B ? Eller skulle databasen returnere mere end én række, hvilket overtræder kontrakten for GROUP BY ?