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.