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:
- Sie können den Bucket-Namen beliebig ändern. Anstelle von „100–150“ können Sie beispielsweise „zwischen 100 und 150“ anzeigen
- 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!