U moet alle kolommen van de SELECT
in de GROUP BY
of gebruik er functies op die de resultaten comprimeren tot een enkele waarde (zoals MIN
, MAX
of SUM
).
Een eenvoudig voorbeeld om te begrijpen waarom dit gebeurt:Stel je voor dat je een database hebt zoals deze:
FOO BAR
0 A
0 B
en je voert SELECT * FROM table GROUP BY foo
. uit . Dit betekent dat de database een enkele rij als resultaat moet retourneren met de eerste kolom 0
om te voldoen aan de GROUP BY
maar er zijn nu twee waarden van bar
om uit te kiezen. Welk resultaat zou je verwachten - A
of B
? Of moet de database meer dan één rij retourneren, in strijd met het contract van GROUP BY
?