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
?