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 ?