Oracle
 sql >> Datenbank >  >> RDS >> Oracle

MAX() in ORACLE-SQL

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ügen
SELECT 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.