Die Spalten, die Sie in der SELECT-Klausel ohne Aggregatfunktion hinzugefügt haben, sollten in der GROUP BY-Klausel enthalten sein.
Um es etwas deutlicher zu machen:
Nehmen Sie dieses Beispiel:
Sie haben TransactionID, AccountID, TransactionAmount, TransactionDate in Ihrer SELECT-Klausel, und Sie benötigen SUM(TransactionAmount) für alle Daten, in diesem Fall, wenn Sie
hinzufügenSELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
Dann erhalten Sie eine Fehlermeldung, weil
Angenommen, Sie haben 4 Transaktionen am 101.01.2016 und jeder Transaktionsbetrag beträgt 1000 $
Ihr erwartetes Ergebnis ist
TransDate TransAmt
20140101 4000
Wenn Sie in diesem Fall andere Attribute wie AccountID und TransactionID in die SELECT-Klausel einfügen, wohin gehen sie? Aus diesem Grund müssen wir alle Attribute in der GROUP-Klausel, was auch immer in der SELECT-Klausel enthalten sein, mit Ausnahme desjenigen, das sich in der AGGREGATE-Funktion befindet.