Anda harus meletakkan semua kolom SELECT di GROUP BY atau gunakan fungsi di dalamnya yang mengompresi hasil menjadi satu nilai (seperti MIN , MAX atau SUM ).
Contoh sederhana untuk memahami mengapa ini terjadi:Bayangkan Anda memiliki database seperti ini:
FOO BAR
0 A
0 B
dan Anda menjalankan SELECT * FROM table GROUP BY foo . Ini berarti database harus mengembalikan satu baris sebagai hasil dengan kolom pertama 0 untuk memenuhi GROUP BY tetapi sekarang ada dua nilai bar untuk memilih dari. Hasil mana yang Anda harapkan - A atau B ? Atau jika database mengembalikan lebih dari satu baris, melanggar kontrak GROUP BY ?