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

Comment calculer le pourcentage de deux colonnes dans MySQL

Parfois, vous devrez peut-être simplement calculer un pourcentage de deux colonnes dans les bases de données MySQL. Voici comment calculer facilement le pourcentage de deux colonnes dans MySQL.

Comment calculer le pourcentage de deux colonnes dans MySQL

Voici le SQL pour calculer le pourcentage de deux colonnes dans MySQL. Disons que vous avez le tableau suivant - sales(sales_rep,sale,goal)

mysql> create table sales(sales_rep varchar(255),sale int, goal int);

mysql> insert into sales(sales_rep,sale,goal) 
values('Albert',10,20),('Bob',23,33),('Chris',20,25),('Dave',35,40);

mysql> select * from sales;
+-----------+------+------+
| sales_rep | sale | goal |
+-----------+------+------+
| Albert    |   10 |   20 |
| Bob       |   23 |   33 |
| Chris     |   20 |   25 |
| Dave      |   35 |   40 |
+-----------+------+------+

Supposons que vous souhaitiez calculer le pourcentage d'accomplissement en tant que vente/objectif*100 pour chaque représentant commercial.

Voici la requête SQL pour calculer le pourcentage de deux colonnes (vente, objectif). Vous pouvez le calculer directement à la volée en utilisant les opérateurs de division et de multiplication, comme indiqué ci-dessous.

mysql> select sales_rep,sale,goal,
(sale/goal)*100 as attainment_percent from sales;
+-----------+------+------+--------------------+
| sales_rep | sale | goal | attainment_percent |
+-----------+------+------+--------------------+
| Albert    |   10 |   20 |            50.0000 |
| Bob       |   23 |   33 |            69.6970 |
| Chris     |   20 |   25 |            80.0000 |
| Dave      |   35 |   40 |            87.5000 |
+-----------+------+------+--------------------+

Lecture bonus : Comment automatiser les requêtes de tableau croisé dynamique dans MySQL

Si vous souhaitez arrondir les pourcentages à 2 décimales, vous pouvez utiliser la fonction ARRONDI comme indiqué

mysql> select sales_rep,sale,goal,
round((sale/goal)*100,2) as attainment_percent from sales;
+-----------+------+------+--------------------+
| sales_rep | sale | goal | attainment_percent |
+-----------+------+------+--------------------+
| Albert    |   10 |   20 |              50.00 |
| Bob       |   23 |   33 |              69.70 |
| Chris     |   20 |   25 |              80.00 |
| Dave      |   35 |   40 |              87.50 |
+-----------+------+------+--------------------+

Si vous souhaitez calculer le pourcentage de deux colonnes uniquement pour des lignes spécifiques, ajoutez la clause WHERE comme indiqué ci-dessous en gras

mysql> select sales_rep,sale,goal
,round((sale/goal)*100,2) as attainment_percent
 from sales
 where sales_rep in ('Bob','Dave');
+-----------+------+------+--------------------+
| sales_rep | sale | goal | attainment_percent |
+-----------+------+------+--------------------+
| Bob       |   23 |   33 |              69.70 |
| Dave      |   35 |   40 |              87.50 |
+-----------+------+------+--------------------+

Lecture bonus : Comment calculer la moyenne mobile dans MySQL

Si vos données totales sont réparties sur plusieurs colonnes, comme indiqué ci-dessous,

mysql> create table sales(sales_rep varchar(255),sale int, sale2 int,sale3 int);

mysql> insert into sales(sales_rep,sale,sale2,sale3) 
values('Albert',10,20,10),('Bob',23,33,20),
('Chris',20,25,15),('Dave',35,40,20);

mysql> select * from sales;
+-----------+------+-------+-------+
| sales_rep | sale | sale2 | sale3 |
+-----------+------+-------+-------+
| Albert    |   10 |    20 |    10 |
| Bob       |   23 |    33 |    20 |
| Chris     |   20 |    25 |    15 |
| Dave      |   35 |    40 |    20 |
+-----------+------+-------+-------+

vous pouvez ensuite calculer le pourcentage de chaque colonne en totalisant leurs valeurs à la volée, comme indiqué ci-dessous.

mysql> select sales_rep,sale, sale2,sale3, 
(sale/(sale+sale2+sale3))*100 as sale_pct, 
(sale2/(sale+sale2+sale3))*100 as sale2_pct, 
(sale3/(sale+sale2+sale3))*100 as sale3_pct 
from sales;
+-----------+------+-------+-------+----------+-----------+-----------+
| sales_rep | sale | sale2 | sale3 | sale_pct | sale2_pct | sale3_pct |
+-----------+------+-------+-------+----------+-----------+-----------+
| Albert    |   10 |    20 |    10 |  25.0000 |   50.0000 |   25.0000 |
| Bob       |   23 |    33 |    20 |  30.2632 |   43.4211 |   26.3158 |
| Chris     |   20 |    25 |    15 |  33.3333 |   41.6667 |   25.0000 |
| Dave      |   35 |    40 |    20 |  36.8421 |   42.1053 |   21.0526 |
+-----------+------+-------+-------+----------+-----------+-----------+

Vous pouvez personnaliser la requête ci-dessus pour calculer le pourcentage de deux colonnes, selon vos besoins.

Vous pouvez également utiliser un outil de création de rapports pour tracer ces données sur un tableau ou un tableau de bord et les partager avec votre équipe. Voici un exemple de tableau avec les données ci-dessus, créé à l'aide d'Ubiq.

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.