Mit Max() SUM () - Aggregatfunktion in Oracle
Ich versuche zu schreiben, die eine Abfrage in Oracle-die Rückkehr sowohl der pub_id und die maximale Summe von Einnahmen aus Titel Tabelle, die pub_id -, Vertriebs -, Preis -.
Ich kann entweder eine Liste mit pub_id und die Gesamt-Einnahmen für die einzelnen pub_id mit
SELECT PUB_ID, SUM(SALES*PRICE) as TotalRevenue FROM TITLES GROUP BY PUB_ID;
Oder bekomme ich nur die MAX(Absatz*Preis) mit
SELECT MAX(SUM(sales*price)) FROM titles GROUP BY pub_id;
Irgendwelche Ideen, wie kann ich die pub_id mit dem maximum des Gesamtumsatzes?
InformationsquelleAutor user1078958 | 2011-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die verwenden der Rang-Funktion wie diese
Kein problem - zögern Sie akzeptieren diese Antwort 🙂
InformationsquelleAutor Greg Reynolds
,Einfach mit der leistungsstarken
ORACLE ANALYTICAL FUNCTIONS
Unten geben die max Einnahmen für die einzelnen
pub_id
.Wenn Sie möchten, um zu bestimmen, die
pub_id
mit der maximale Umsatz:Ok, ich bearbeitet.
InformationsquelleAutor bonsvr
Es gibt wirklich keine Notwendigkeit für analytische Funktionen in diesem Fall. Die beste option wäre die Gruppe zwei mal einem für das sum() und die folgende Zeit, für die max() mit der dense_rank option.
InformationsquelleAutor Alessandro Rossi
InformationsquelleAutor SalahTriki