Du måste lägga in alla kolumner i SELECT
i GROUP BY
eller använd funktioner på dem som komprimerar resultaten till ett enda värde (som MIN
, MAX
eller SUM
).
Ett enkelt exempel för att förstå varför detta händer:Föreställ dig att du har en databas som denna:
FOO BAR
0 A
0 B
och du kör SELECT * FROM table GROUP BY foo
. Detta innebär att databasen måste returnera en enda rad som resultat med den första kolumnen 0
för att uppfylla GROUP BY
men det finns nu två värden för bar
att välja mellan. Vilket resultat skulle du förvänta dig - A
eller B
? Eller bör databasen returnera mer än en rad, vilket bryter mot avtalet för GROUP BY
?