sql >> Database teknologi >  >> RDS >> Mysql

Hvordan opretter man histogram i MySQL?

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.

  1. orakel | slette dubletter

  2. [Video] Introduktion til JSON-datatyper i PostgreSQL

  3. Sådan får du information om kompileringsfejl i Oracle/TOAD

  4. Beregner du et glidende gennemsnit i MySQL?