Histogram hjälper dig att plotta frekvensfördelning från data och dra insikter snabbt. Så här skapar du histogram i MySQL. Du kan använda den för att skapa frekvensdistribution i MySQL såväl som PostgreSQL.
Hur skapar man histogram i MySQL?
Här är SQL-frågan för att skapa histogram i MySQL.
Låt oss säga att du har följande tabell försäljning(orderdatum, rea)
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 Läs:Hur man importerar CSV-fil till MySQL
Skapa histogram i MySQL
Det finns flera MySQL Histrogram-frågor för att skapa histogram i MySQL. Vi kommer att titta på var och en av dem.
Enklaste sättet att skapa histogram i MySQL
Om dina MySQL-histogramfack har lika intervall (10-20, 20-30, 30-40, etc.) så är här SQL-frågan för att skapa frekvensdistribution i MySQL.
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 | +-----------+----------+
I ovanstående fråga är histogrammets lagerstorlek 10. Om du vill ändra lagerstorleken till 25, ändra floor(rea/10 )*10 till våning(rea/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 | +-----------+----------+
Fördelen med metoden ovan är att den automatiskt ändrar soporna baserat på tillägg/radering/ändring av data.
Bonus Läs:Hur man beräknar omvandlingsfrekvens i MySQL
Det mest flexibla sättet att skapa histogram i MySQL
Om du redan vet vilka histogramfack som ska skapas eller om dina histogramhinkstorlekar är olika, kan du skapa frekvensfördelning med CASE-satsen. Här är histogramfrågan 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 | +------------+-------+
I den här frågan kan du ändra histogramsegmenten till vilket intervall du vill, de behöver inte ha enhetliga intervall. Den här frågan fungerar utmärkt om du har 5-10 hinkar.
Bonus Läs:Hur man fyller i saknade datum i MySQL
När du har skapat frekvensfördelning i MySQL kan du använda ett diagramverktyg för att plotta det i ett kolumndiagram. Här är en graf skapad med Ubiq.
Förresten, om du vill skapa diagram, instrumentpaneler &rapporter från MySQL-databasen kan du prova Ubiq. Vi erbjuder en 14-dagars gratis provperiod.