Kolom yang pernah Anda tambahkan dalam klausa SELECT tanpa fungsi agregat harus berada dalam klausa GROUP BY.
Untuk membuatnya sedikit lebih jelas:
Ambil Contoh ini:
Anda memiliki TransactionID, AccountID, TransactionAmount, TransactionDate di SELECT Clause Anda, dan Anda memerlukan SUM(TransactionAmount) pada semua tanggal, dalam hal ini, jika Anda menambahkan
SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
Kemudian Anda akan mendapatkan error, mengapa karena
Asumsikan Anda memiliki 4 transaksi pada 20160101 dan setiap transaksiAmount adalah $1000
Hasil yang Anda harapkan adalah
TransDate TransAmt
20140101 4000
Dalam hal ini, jika Anda membawa atribut lain dalam klausa SELECT seperti AccountID dan TransactionID, ke mana mereka akan pergi? Inilah sebabnya mengapa kita harus memasukkan semua atribut dalam Klausa GROUP apa pun yang ada di klausa SELECT kecuali yang dengan fungsi AGGREGATE.