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

Come calcolare la percentuale di due colonne in MySQL

A volte potrebbe essere necessario calcolare semplicemente una percentuale di due colonne nei database MySQL. Ecco come calcolare facilmente la percentuale di due colonne in MySQL.

Come calcolare la percentuale di due colonne in MySQL

Ecco l'SQL per calcolare la percentuale di due colonne in MySQL. Supponiamo che tu abbia la seguente tabella: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 |
+-----------+------+------+

Supponiamo che tu voglia calcolare il raggiungimento_percentuale come vendita/obiettivo*100 per ogni rappresentante di vendita.

Ecco la query SQL per calcolare la percentuale di due colonne (vendita, obiettivo). Puoi calcolarlo direttamente al volo usando gli operatori di divisione e moltiplicazione, come mostrato di seguito.

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 |
+-----------+------+------+--------------------+

Bonus Leggi: Come automatizzare le query delle tabelle pivot in MySQL

Se desideri arrotondare i numeri percentuali a 2 cifre decimali, puoi utilizzare la funzione ARROTONDA come mostrato

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 |
+-----------+------+------+--------------------+

Se vuoi calcolare la percentuale di due colonne solo per righe specifiche, aggiungi la clausola WHERE come mostrato di seguito in grassetto

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 |
+-----------+------+------+--------------------+

Bonus Leggi: Come calcolare la media mobile in MySQL

Se i tuoi dati totali sono distribuiti su più colonne, come mostrato di seguito,

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 |
+-----------+------+-------+-------+

quindi puoi calcolare la percentuale di ciascuna colonna sommando i loro valori al volo, come mostrato di seguito.

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 |
+-----------+------+-------+-------+----------+-----------+-----------+

Puoi personalizzare la query sopra per calcolare la percentuale di due colonne, secondo le tue esigenze.

Puoi anche utilizzare uno strumento di reporting per tracciare questi dati su una tabella o dashboard e condividerli con il tuo team. Ecco un esempio di una tabella con i dati sopra, creata utilizzando Ubiq.

Se vuoi creare grafici, dashboard e report dal database MySQL, puoi provare Ubiq. Offriamo una prova gratuita di 14 giorni.