sql >> Databasteknik >  >> RDS >> Oracle

MAX() i ORACLE SQL

Kolumnerna som du någonsin lagt till i SELECT-satsen utan en aggregatfunktion bör finnas i GROUP BY-satsen.

För att göra det lite tydligt:
Ta detta exempel:

Du har TransactionID, AccountID, TransactionAmount, TransactionDate i din SELECT-klausul och du behöver SUM(TransactionAmount) på alla datum, i så fall om du lägger till

SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount) 
FROM Table 
GROUP BY TransactionDate

Då får du ett felmeddelande, varför eftersom
Anta att du har fyra transaktioner 20160101 och varje transaktionsbelopp är $1000
Din resultatförväntning blir

TransDate      TransAmt
 20140101          4000

I det här fallet, om du tar med andra attribut i SELECT-satsen som AccountID och TransactionID, vart tar de vägen? Det är därför vi måste inkludera alla attribut i GROUP-satsen vad som helst i SELECT-satsen förutom den som är med AGGREGATE-funktionen.



  1. Kontrollera om användaren är på sidan

  2. Hur man säkrar MySQL/MariaDB-servrar

  3. SQL FINNS Operatör för nybörjare

  4. MYSQL dölj fältdata om värde i ett annat fält är inställt