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?