Auswahl einer Teilmenge von Zeilen, die einen Prozentsatz der Gesamtwerte überschreiten

Ich habe eine Tabelle mit Kunden, Benutzern und Einnahmen, die der folgenden ähnelt (in Wirklichkeit Tausende von Datensätzen):

Customer   User    Revenue
001        James   500
002        James   750
003        James   450
004        Sarah   100
005        Sarah   500
006        Sarah   150
007        Sarah   600
008        James   150
009        James   100

Was ich tun möchte, ist, nur die Kunden mit den höchsten Ausgaben zurückzugeben, die 80% des Gesamtumsatzes für den Benutzer ausmachen.

Um dies manuell zu tun, würde ich James 'Kunden nach ihrem Umsatz ordnen, den Prozentsatz der Gesamtsumme und einen laufenden Gesamtprozentsatz berechnen und dann nur Datensätze zurückgeben, bis die laufende Gesamtsumme 80% erreicht:

Customer    User    Revenue     % of total  Running Total %
002         James   750         0.38        0.38 
001         James   500         0.26        0.64 
003         James   450         0.23        0.87  <- Greater than 80%, last record
008         James   150         0.08        0.95 
009         James   100         0.05        1.00 

Ich habe versucht, einen CTE zu verwenden, bin aber bisher leer geblieben. Gibt es eine Möglichkeit, dies über eine einzelne Abfrage anstatt manuell in einer Excel-Tabelle zu tun?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage