De kolommen die u ooit in de SELECT-component hebt toegevoegd zonder een aggregatiefunctie, moeten in de GROUP BY-component staan.
Om het een beetje duidelijk te maken:
Neem dit voorbeeld:
U hebt TransactionID, AccountID, TransactionAmount, TransactionDate in uw SELECT-clausule en u hebt SUM(TransactionAmount) nodig op alle datums, in dat geval, als u
toevoegtSELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
Dan krijg je een foutmelding, waarom omdat
Stel dat je 4 transacties hebt op 20160101 en elk transactiebedrag is $1000
Je verwachte resultaat zal zijn
TransDate TransAmt
20140101 4000
Als u in dit geval andere attributen in de SELECT-clausule opneemt, zoals AccountID en TransactionID, waar gaan ze dan naartoe? Dit is de reden waarom we alle attributen in de GROUP-clausule moeten opnemen in de SELECT-clausule, behalve die met de AGGREGATE-functie.