Die Berechnung des Perzentils hilft Ihnen, Daten für die Analyse einzustufen und den Median für eine Reihe von Werten zu berechnen. So berechnen Sie das Perzentil in PostgreSQL mit percentile_cont Fensterfunktion. Wir werden uns auch ansehen, wie das 50. Perzentil, das 90. Perzentil, das 95. Perzentil und das n. Perzentil in PostgreSQL berechnet werden, da sie häufig in der Datenanalyse verwendet werden.
So berechnen Sie das Perzentil in PostgreSQL
Wir berechnen das Perzentil in PostgreSQL mit percentile_cont Fensterfunktion
Angenommen, Sie haben die folgende Tabelle sales(order_date,amount) und Sie möchten das 50. Perzentil berechnen.
postgres=# create table sales(order_date date,sale int); postgres=# insert into sales values('2020-04-01',210), ('2020-04-02',125),('2020-04-03',150),('2020-04-04',230), ('2020-04-05',200),('2020-04-10',220),('2020-04-06',25), ('2020-04-07',215),('2020-04-08',300),('2020-04-09',250); postgres=# select * from sales; order_date | sale ------------+------ 2020-04-01 | 210 2020-04-02 | 125 2020-04-03 | 150 2020-04-04 | 230 2020-04-05 | 200 2020-04-10 | 220 2020-04-06 | 25 2020-04-07 | 215 2020-04-08 | 300 2020-04-09 | 250
Bonuslektüre:Wie man fehlende Daten in PostgreSQL einträgt
Hier ist die Abfrage zur Berechnung des 50. Perzentils in PostgreSQL. Sie können dieselbe Abfrage verwenden, um den Median in PostgreSQL zu berechnen.
postgres=# SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_cont ----------------- 212.5
In der obigen Abfrage verwenden wir percentile_cont Fensterfunktion, mit der Sie festlegen können, welches Perzentil (z. B. 0,5 das ist das 50. Perzentil), die Sie berechnen möchten. Dann verwenden wir auch die WITHIN GROUP-Klausel, um das Perzentil innerhalb der Gruppe von Verkauf zu berechnen Werte. Wir verwenden auch die ORDER BY-Klausel, um den Verkauf zu sortieren Werte, bevor wir das Perzentil in PostgreSQL berechnen.
Wenn Sie percentile_cont verwenden window-Funktion interpoliert PostgreSQL den Medianwert als Durchschnitt von 2 mittleren Werten (210, 215), falls es 2 mittlere Werte gibt. Deshalb gibt es 212,5
zurück
Bonuslektüre:So berechnen Sie den gleitenden Durchschnitt in PostgreSQL
Wenn Sie das Perzentil in PostgreSQL berechnen können und PostgreSQL nicht interpolieren, sondern nur den nächsten Wert zurückgeben soll, verwenden Sie percentile_disc stattdessen Fensterfunktion. Hier ist ein Beispiel
postgres=# SELECT PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 210
In diesem Fall wird der mittlere Wert zurückgegeben, falls es 2 mittlere Werte gibt.
Bonuslektüre:So importieren Sie eine CSV-Datei in PostgreSQL
So berechnen Sie das 90. Perzentil in PostgreSQL
In ähnlicher Weise können Sie das 90. Perzentil in PostgreSQL mit percentile_cont berechnen. Wir ändern 0,5 auf 0,9 inpercentile_cont Funktion
postgres=# SELECT PERCENTILE_CONT(0.9) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_cont ----------------- 255
Sie können auch das 90. Perzentil in PostgreSQL mit percentile_disc berechnen
postgres=# SELECT PERCENTILE_DISC(0.9) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 250
So berechnen Sie das 95. Perzentil in PostgreSQL
Auf ähnliche Weise können Sie das 95. Perzentil in PostgreSQL mit percentile_cont berechnen
postgres=# SELECT PERCENTILE_CONT(0.95) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_cont ----------------- 277.5
Sie können das 95. Perzentil auch in PostgreSQL mit percentile_disc berechnen
postgres=# SELECT PERCENTILE_DISC(0.95) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 300
So berechnen Sie das n-te Perzentil in PostgreSQL
In ähnlicher Weise können Sie das n-te Perzentil in PostgreSQL mit percentile_cont berechnen. Wir liefern grundsätzlich n/100 in percentile_cont Funktion
postgres=# SELECT PERCENTILE_CONT(n/100) WITHIN GROUP(ORDER BY sale) FROM sales;
Sie können auch das 90. Perzentil in PostgreSQL mit percentile_disc berechnen
postgres=# SELECT PERCENTILE_DISC(n/100) WITHIN GROUP(ORDER BY sale) FROM sales;
Nachdem Sie das Perzentil in PostgreSQL berechnet haben, können Sie ein PostgreSQL-Berichtstool verwenden, um die Perzentilwerte zusammen mit den Verkaufswerten in einem Liniendiagramm darzustellen, um die Differenz zu analysieren und auch Ziele festzulegen. Dazu verbinden wir den berechneten 50. Perzentilwert mit den ursprünglichen Umsätzen Tabelle wie unten gezeigt
postgres=# select * from sales, (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales) temp order by order_date; order_date | sale | percentile_cont ------------+------+----------------- 2020-04-01 | 210 | 212.5 2020-04-02 | 125 | 212.5 2020-04-03 | 150 | 212.5 2020-04-04 | 230 | 212.5 2020-04-05 | 200 | 212.5 2020-04-06 | 25 | 212.5 2020-04-07 | 215 | 212.5 2020-04-08 | 300 | 212.5 2020-04-09 | 250 | 212.5 2020-04-10 | 220 | 212.5
Hier ist ein Liniendiagramm, das die täglichen Verkäufe zusammen mit dem Perzentil zeigt, dargestellt mit Ubiq
Wenn Sie Diagramme, Dashboards und Berichte aus der PostgreSQL-Datenbank erstellen möchten, können Sie Ubiq ausprobieren. Wir bieten eine 14-tägige kostenlose Testversion an.