Ich versuche, ein Perzentil mit der Percentile_cont() - Funktion in PostgreSQL mit gemeinsamen Tabellenausdrücken zu berechnen. Das Ziel ist, die besten 1% der Konten hinsichtlich ihrer Salden zu finden (hier Betrag genannt). Meine Logik ist das 99. Perzentil zu finden, die diejenigen, deren Kontostände sind mehr als 99% ihrer Kollegen (und damit die Suche nach dem 1 percenters) zurück istKonnte Percentile_Cont() nicht in Postgresql arbeiten
Hier meine Frage
--ranking subquery works fine
with ranking as(
select a.lname,sum(c.amount) as networth from customer a
inner join
account b on a.customerid=b.customerid
inner join
transaction c on b.accountid=c.accountid
group by a.lname order by sum(c.amount)
)
select lname, networth, percentile_cont(0.99) within group
order by networth over (partition by lname) from ranking ;
ich halte die immer Folgefehler
ERROR: syntax error at or near "order"
LINE 2: ...ame, networth, percentile_cont(0.99) within group order by n..
Ich denke, dass ich vielleicht eine schließende Klammer etc. vergessen habe, aber ich kann nicht herausfinden, wo. Ich weiß, es könnte etwas mit dem Schlüsselwort order
sein, aber ich bin mir nicht sicher, was ich tun soll. Können Sie mir bitte helfen, diesen Fehler zu beheben?
. . Ihre ursprüngliche Abfrage ergibt keinen Sinn. Sie gruppieren nach 'lname' und verwenden dann das für die Partition für' networth'. Da es nur eine Zeile gibt, ergibt ein 99. Perzentil keinen Sinn. Vielleicht möchten Sie eine andere Frage mit Beispieldaten und gewünschten Ergebnissen stellen. –