Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer un histogramme dans MySQL ?

L'histogramme vous aide à tracer la distribution de fréquence à partir des données et à tirer rapidement des informations. Voici comment créer un histogramme dans MySQL. Vous pouvez l'utiliser pour créer une distribution de fréquence dans MySQL ainsi que PostgreSQL.

Comment créer un histogramme dans MySQL ?

Voici la requête SQL pour créer un histogramme dans MySQL.

Disons que vous avez le tableau suivant 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

Lecture bonus :Comment importer un fichier CSV dans MySQL

Créer un histogramme dans MySQL

Il existe plusieurs requêtes MySQL Histogram pour créer un histogramme dans MySQL. Nous allons examiner chacun d'eux.

Le moyen le plus simple de créer un histogramme dans MySQL

Si vos bacs d'histogramme MySQL ont des intervalles égaux (10-20, 20-30, 30-40, etc.), voici la requête SQL pour créer une distribution de fréquence dans 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 |
+-----------+----------+

Dans la requête ci-dessus, la taille de la classe de l'histogramme est 10. Si vous souhaitez modifier la taille de la classe à 25, modifiez floor(sale/10 )*10 au plancher(vente/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 |
+-----------+----------+

L'avantage de la méthode ci-dessus est qu'elle change automatiquement les bacs en fonction de l'ajout/de la suppression/de la modification des données.

Lecture bonus :Comment calculer le taux de conversion dans MySQL

Le moyen le plus flexible de créer un histogramme dans MySQL

Si vous connaissez déjà les intervalles d'histogramme à créer ou si les tailles de vos compartiments d'histogramme sont différentes, vous pouvez créer une distribution de fréquence à l'aide de l'instruction CASE. Voici la requête d'histogramme pour 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 |
+------------+-------+

Dans cette requête, vous pouvez modifier les compartiments de l'histogramme dans n'importe quelle plage de votre choix, ils n'ont pas besoin d'avoir des intervalles uniformes. Cette requête fonctionne très bien si vous avez 5 à 10 compartiments.

Lecture bonus :Comment remplir les dates manquantes dans MySQL

Après avoir créé la distribution de fréquence dans MySQL, vous pouvez utiliser un outil graphique pour la tracer dans un histogramme. Voici un graphique créé avec Ubiq.

Au fait, si vous souhaitez créer des graphiques, des tableaux de bord et des rapports à partir de la base de données MySQL, vous pouvez essayer Ubiq. Nous offrons un essai gratuit de 14 jours.