sql >> Database teknologi >  >> RDS >> Oracle

MAX() i ORACLE SQL

De kolonner, som du nogensinde har tilføjet i SELECT-udtrykket uden en aggregatfunktion, skal være i GROUP BY-udtrykket.

For at gøre det lidt klart:
Tag dette eksempel:

Du har TransactionID, AccountID, TransactionAmount, TransactionDate i din SELECT-klausul, og du skal bruge SUM(TransactionAmount) på alle datoer, i så fald, hvis du tilføjer

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

Så vil du få en fejl, hvorfor fordi
Antag, at du har 4 transaktioner i 20160101, og hver transaktionsbeløb er $1000
Din resultatforventning vil være

TransDate      TransAmt
 20140101          4000

I dette tilfælde, hvis du bringer andre attributter i SELECT-klausulen som AccountID og TransactionID, hvor vil de så gå hen? Det er derfor, vi er nødt til at inkludere alle attributterne i GROUP-klausulen hvad som helst i SELECT-klausulen undtagen den, der er med AGGREGATE-funktionen.



  1. Kan nogen forklare, hvad MERGE-erklæringen virkelig gør i Oracle?

  2. Hvad bør enhver PHP-programmør vide?

  3. LIKE kommandoen Mysql

  4. Lære 2 med flere indekser