PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So erstellen Sie ein Histogramm in PostgreSQL

Histogramme helfen Ihnen, die Häufigkeitsverteilung bei der Datenanalyse und Berichterstellung zu visualisieren und schnell Erkenntnisse zu gewinnen. So erstellen Sie ein Histogramm in PostgreSQL. Wir werden uns ein paar verschiedene Möglichkeiten ansehen, um die Häufigkeitsverteilung in PostgreSQL zu erhalten.

So erstellen Sie ein Histogramm in PostgreSQL

Hier sind die Schritte zum Erstellen eines Histogramms in PostgreSQL.

Nehmen wir an, Sie haben die folgende Tabelle sales(order_date, sale)

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',250),
           ('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 |  250
 2020-04-07 |  215
 2020-04-08 |  300
 2020-04-09 |  250

Bonus-Lesetext:Benutzer in PostgreSQL erstellen

Histogramm in PostgreSQL erstellen

Es gibt mehrere PostgreSQL-Histogrammabfragen, um ein Histogramm in PostgreSQL zu erstellen. Wir werden uns jeden von ihnen ansehen.

Einfachste Möglichkeit, ein Histogramm in PostgreSQL zu erstellen

Wenn Sie möchten, dass PostgreSQL-Histogramm-Bins gleiche Intervalle haben (10-20, 20-30, 30-40 usw.), dann ist hier die SQL-Abfrage, um die Häufigkeitsverteilung in PostgreSQL zu erstellen.

postgres=# select floor(sale/10)*10 as bin_floor, count(*)
     from sales
     group by 1
     order by 1;
+-----------+----------+
| bin_floor | count(*) |
+-----------+----------+
|       120 |        1 |
|       150 |        1 |
|       200 |        1 |
|       210 |        2 |
|       220 |        1 |
|       230 |        1 |
|       250 |        2 |
|       300 |        1 |
+-----------+----------+

In der obigen Abfrage berechnen wir die Behälternummer, indem wir jeden Verkaufswert durch die Behältergröße des Histogramms dividieren, also 10. Wenn Sie die Behältergröße auf 25 ändern möchten, ändern Sie floor(sale/10 )*10 bis floor(sale/25 )*25

Bonus-Lesetext:PostgreSQL DROP VIEW

postgres=# select floor(sale/25)*25 as bin_floor, count(*)
     from sales
     group by 1
     order by 1;
+-----------+----------+
| bin_floor | count(*) |
+-----------+----------+
|       125 |        1 |
|       150 |        1 |
|       200 |        4 |
|       225 |        1 |
|       250 |        2 |
|       300 |        1 |
+-----------+----------+

Der Vorteil des obigen Verfahrens besteht darin, dass es die Bins basierend auf dem Hinzufügen/Löschen/Ändern von Daten automatisch ändert. Es erstellt auch neue Bins für neue Daten und/oder entfernt Bins, falls ihre Anzahl 0 wird. So können Sie dynamisch Histogramme in PostgreSQL erstellen.

Bonus-Lesezugriff:PostgreSQL-Index erstellen

Flexibelster Weg zum Erstellen von Histogrammen in PostgreSQL

Wenn Sie die zu erstellenden Histogramm-Bins bereits kennen oder Ihre Histogramm-Bucket-Größen unterschiedlich sind, können Sie die Häufigkeitsverteilung mithilfe der CASE-Anweisung erstellen. Hier ist die Histogramm-Abfrage für PostgreSQL

postgresql=# select '100-150' as TotalRange,count(sale) as Count from sales
        where sale between 100 and 150
     union (
     select '150-200' as TotalRange,count(sale) as Count from sales
        where sale between 150 and 200)
     union (
     select '200-225' as TotalRange,count(sale) as Count from sales
        where sale between 200 and 225)
     union (
     select '225-250' as TotalRange,count(sale) as Count from sales
        where sale between 225 and 250);
+------------+-------+
| TotalRange | Count |
+------------+-------+
| 100-150    |     2 |
| 150-200    |     2 |
| 200-225    |     4 |
| 225-250    |     3 |
+------------+-------+

In dieser Abfrage weisen wir jedem Verkaufswert mithilfe der Case-Anweisung einen Bucket zu. Sie können die Histogramm-Buckets in jeden gewünschten Bereich ändern, sie müssen keine einheitlichen Intervalle haben.

Diese Abfrage hat 2 Vorteile:

  1. Sie können den Bucket-Namen beliebig ändern. Anstelle von „100–150“ können Sie beispielsweise „zwischen 100 und 150“ anzeigen
  2. Sie können eine uneinheitliche Bucket-Größe haben. Beispielsweise können Sie einen Bucket als 100–150 mit einer Bucket-Größe von 50 und einen anderen Bucket als 150–250 mit einer Bucket-Größe von 100 haben.

Abhängig von Ihren Anforderungen können Sie eine der oben genannten Methoden auswählen, um ein Histogramm in PostgreSQL zu erstellen.

Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!