Die Berechnung des Medians hilft Ihnen, den Mittelwert in den Daten zu finden und Rauschen aufgrund von Extremwerten zu vermeiden. So berechnen Sie den Median in PostgreSQL mit percentile_cont da es in PostgreSQL keine Funktion zur Berechnung des Medians gibt
So berechnen Sie den Median in PostgreSQL
Wir berechnen den Median in PostgreSQL, indem wir den 50. Perzentilwert berechnen, da es in PostgreSQL keine integrierte Funktion zur Berechnung des Medians gibt.
Angenommen, Sie haben die folgende Tabelle sales(order_date,amount)
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:So berechnen Sie den gleitenden Durchschnitt in PostgreSQL
Hier ist die Abfrage, um den Median zu finden, d. h. das 50. Perzentil 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 Funktion, mit der Sie definieren können, welches Perzentil (z. B. 0,5, das ist das 50. Perzentil) Sie berechnen möchten. Dann verwenden wir auch die WITHIN GROUP-Klausel, um PostgreSQL anzuweisen, das Perzentil innerhalb der Gruppe von Verkauf zu berechnen Werte. Wir verwenden auch die ORDER BY-Klausel, um PostgreSQL anzuweisen, den Verkauf zu sortieren Werte vor der Berechnung des Medians.
Wenn Sie percentile_cont verwenden , interpoliert PostgreSQL den Medianwert als Durchschnitt von 2 mittleren Werten (210.215).
Bonuslektüre:So importieren Sie eine CSV-Datei in eine PostgreSQL-Tabelle
Wenn Sie nicht möchten, dass PostgreSQL interpoliert, sondern nur den nächstliegenden Wert zurückgibt, verwenden Sie percentile_disc stattdessen. Hier ist ein Beispiel
postgres=# SELECT PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 210
Wenn Sie den Median in PostgreSQL für jede Gruppe berechnen möchten, verwenden Sie die GROUP BY-Klausel wie unten gezeigt. Sagen wir Ihre Verkäufe Tabelle enthält auch Produkt Spalte mit Produktnamen. In diesem Fall können Sie mit der folgenden Abfrage den Median für jedes Produkt berechnen.
postgres=# SELECT PRODUCT, PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales GROUP BY PRODUCT;
Bonuslektüre:So berechnen Sie das Wachstum von Monat zu Monat in PostgreSQL
Nachdem Sie den Median in PostgreSQL berechnet haben, können Sie ein PostgreSQL-Berichtstool verwenden, um die Medianwerte zusammen mit den Verkaufswerten in einem Liniendiagramm darzustellen, um die Differenz zu analysieren. Dazu verbinden wir den errechneten Medianwert mit dem ursprünglichen Umsatz 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 Median 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.