Histogram hjælper dig med at plotte frekvensfordeling fra data og hurtigt tegne indsigt. Sådan opretter du histogram i MySQL. Du kan bruge den til at oprette frekvensfordeling i MySQL såvel som PostgreSQL.
Hvordan opretter man histogram i MySQL?
Her er SQL-forespørgslen til at oprette histogram i MySQL.
Lad os sige, at du har følgende tabel salg(ordre_dato, udsalg)
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:Sådan importeres CSV-fil til MySQL
Opret histogram i MySQL
Der er flere MySQL Histrogram-forespørgsler til at oprette histogram i MySQL. Vi vil se på hver af dem.
Den enkleste måde at oprette Histogram i MySQL
Hvis dine MySQL Histogram bins har ens intervaller (10-20, 20-30, 30-40 osv.), så er her SQL-forespørgslen til at oprette frekvensfordeling 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 ovenstående forespørgsel er histogrambeholderstørrelsen 10. Hvis du vil ændre beholderstørrelsen til 25, skal du ændre floor(sale/10 )*10 til etage(salg/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 | +-----------+----------+
Fordelen ved ovenstående metode er, at den automatisk ændrer bakken baseret på tilføjelse/sletning/ændring af data.
Bonus Læs:Sådan beregnes konverteringsrate i MySQL
Mest fleksible måde at oprette histogram i MySQL på
Hvis du allerede kender histogrambakkerne, der skal oprettes, eller hvis dine histogrambøttestørrelser er forskellige, så kan du oprette frekvensfordeling ved hjælp af CASE-sætning. Her er histogramforespørgslen til 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 denne forespørgsel kan du ændre histogramblokkene til et hvilket som helst område, du ønsker, de behøver ikke at have ensartede intervaller. Denne forespørgsel fungerer godt, hvis du har 5-10 buckets.
Bonuslæser:Sådan udfyldes manglende datoer i MySQL
Når du har oprettet frekvensfordeling i MySQL, kan du bruge et diagramværktøj til at plotte det i et søjlediagram. Her er en graf lavet ved hjælp af Ubiq.
Forresten, hvis du vil oprette diagrammer, dashboards og rapporter fra MySQL-databasen, kan du prøve Ubiq. Vi tilbyder en 14-dages gratis prøveperiode.