Musíte vložit všechny sloupce SELECT v GROUP BY nebo na nich použijte funkce, které komprimují výsledky na jedinou hodnotu (např. MIN , MAX nebo SUM ).
Jednoduchý příklad, abyste pochopili, proč k tomu dochází:Představte si, že máte databázi podobnou této:
FOO BAR
0 A
0 B
a spustíte SELECT * FROM table GROUP BY foo . To znamená, že databáze musí jako výsledek vrátit jeden řádek s prvním sloupcem 0 splnit GROUP BY ale nyní existují dvě hodnoty bar z čeho vybírat. Jaký výsledek byste očekávali - A nebo B ? Nebo by měla databáze vrátit více než jeden řádek, čímž poruší smlouvu GROUP BY ?