Das Histogramm hilft Ihnen, die Häufigkeitsverteilung aus Daten darzustellen und schnell Erkenntnisse zu gewinnen. So erstellen Sie ein Histogramm in MySQL. Sie können damit sowohl in MySQL als auch in PostgreSQL eine Häufigkeitsverteilung erstellen.
Wie erstelle ich ein Histogramm in MySQL?
Hier ist die SQL-Abfrage zum Erstellen eines Histogramms in MySQL.
Nehmen wir an, Sie haben die folgende Tabelle sales(order_date, sale)
mysql> create table sales(order_date date,sale int); mysql> 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); mysql> 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
Bonuslektüre:So importieren Sie eine CSV-Datei in MySQL
Histogramm in MySQL erstellen
Es gibt mehrere MySQL-Histogramm-Abfragen, um ein Histogramm in MySQL zu erstellen. Wir werden uns jeden von ihnen ansehen.
Einfachste Möglichkeit, ein Histogramm in MySQL zu erstellen
Wenn Ihre MySQL-Histogramm-Bins gleiche Intervalle haben (10-20, 20-30, 30-40 usw.), dann ist hier die SQL-Abfrage, um eine Häufigkeitsverteilung in MySQL zu erstellen.
mysql> 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 ist die Bin-Größe des Histogramms 10. Wenn Sie die Bin-Größe auf 25 ändern möchten, ändern Sie floor(sale/10 )*10 bis floor(sale/25 )*25
mysql> 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 der obigen Methode besteht darin, dass die Bins basierend auf dem Hinzufügen/Löschen/Ändern von Daten automatisch geändert werden.
Bonuslektüre:Wie man die Konversionsrate in MySQL berechnet
Flexibelster Weg zum Erstellen von Histogrammen in MySQL
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 MySQL
mysql> 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 können Sie die Histogramm-Buckets in einen beliebigen Bereich ändern, sie müssen keine einheitlichen Intervalle haben. Diese Abfrage funktioniert hervorragend, wenn Sie 5–10 Buckets haben.
Bonuslektüre:Wie man fehlende Daten in MySQL einträgt
Nachdem Sie die Häufigkeitsverteilung in MySQL erstellt haben, können Sie sie mit einem Diagrammtool in einem Säulendiagramm darstellen. Hier ist ein Diagramm, das mit Ubiq erstellt wurde.
Übrigens, wenn Sie Diagramme, Dashboards und Berichte aus einer MySQL-Datenbank erstellen möchten, können Sie Ubiq ausprobieren. Wir bieten eine 14-tägige kostenlose Testversion an.