Histogram helpt u de frequentieverdeling uit gegevens te plotten en snel inzichten te verkrijgen. Hier leest u hoe u een histogram maakt in MySQL. U kunt het gebruiken om frequentieverdeling in MySQL en PostgreSQL te creëren.
Hoe maak je een histogram in MySQL?
Hier is de SQL-query om een histogram te maken in MySQL.
Stel dat u de volgende tabel sales(order_date, sale) . heeft
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
Bonus Lezen:CSV-bestand importeren in MySQL
Histogram maken in MySQL
Er zijn meerdere MySQL Histrogram-query's om een histogram in MySQL te maken. We zullen ze allemaal bekijken.
Eenvoudigste manier om histogram te maken in MySQL
Als uw MySQL-histogrambakken gelijke intervallen hebben (10-20, 20-30, 30-40, enz.), dan is hier de SQL-query om frequentieverdeling in MySQL te maken.
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 de bovenstaande zoekopdracht is de histogrambakgrootte 10. Als u de bakgrootte wilt wijzigen in 25, wijzigt u floor(sale/10 )*10 tot etage(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 |
+-----------+----------+
Het voordeel van de bovenstaande methode is dat deze automatisch de bakken verandert op basis van toevoeging/verwijdering/wijziging van gegevens.
Bonus Lezen:Hoe de conversieratio in MySQL te berekenen
Meest flexibele manier om histrogram te maken in MySQL
Als u al weet welke histogrambakken moeten worden gemaakt of als de grootte van uw histogrambak verschilt, kunt u een frequentieverdeling maken met behulp van de CASE-instructie. Hier is de histogramquery voor 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 deze query kunt u de histogram-buckets wijzigen in elk gewenst bereik, ze hoeven geen uniforme intervallen te hebben. Deze zoekopdracht werkt prima als je 5-10 buckets hebt.
Bonus lezen:ontbrekende datums in MySQL invullen
Nadat u de frequentieverdeling in MySQL hebt gemaakt, kunt u een grafiektool gebruiken om deze in een kolomdiagram te plotten. Hier is een grafiek gemaakt met Ubiq.

Trouwens, als je grafieken, dashboards en rapporten uit de MySQL-database wilt maken, kun je Ubiq proberen. We bieden een gratis proefperiode van 14 dagen aan.