Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como calcular a porcentagem de duas colunas no MySQL


Às vezes você pode precisar simplesmente calcular uma porcentagem de duas colunas em bancos de dados MySQL. Veja como calcular facilmente a porcentagem de duas colunas no MySQL.


Como calcular a porcentagem de duas colunas no MySQL


Aqui estão os SQL para calcular a porcentagem de duas colunas no MySQL. Digamos que você tenha a seguinte tabela – vendas(vendas_representante,venda,objetivo)


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

Digamos que você queira calcular Attainment_percent como venda/meta*100 para cada representante de vendas.

Aqui está a consulta SQL para calcular a porcentagem de duas colunas (venda, meta). Você pode calculá-lo diretamente em tempo real usando operadores de divisão e multiplicação, como mostrado abaixo.
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 |
+-----------+------+------+--------------------+

Bônus de leitura: Como automatizar consultas de tabela dinâmica no MySQL

Se você quiser arredondar os números percentuais para 2 casas decimais, você pode usar a função ROUND conforme mostrado
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 você deseja calcular a porcentagem de duas colunas apenas para linhas específicas, adicione a cláusula WHERE conforme mostrado abaixo em negrito
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 |
+-----------+------+------+--------------------+

Bônus de leitura: Como calcular a média móvel no MySQL

Se seus dados totais estiverem distribuídos em várias colunas, conforme mostrado abaixo,
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 |
+-----------+------+-------+-------+

então você pode calcular a porcentagem de cada coluna totalizando seus valores dinamicamente, conforme mostrado abaixo.
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 |
+-----------+------+-------+-------+----------+-----------+-----------+

Você pode personalizar a consulta acima para calcular a porcentagem de duas colunas, conforme sua necessidade.



Você também pode usar uma ferramenta de relatório para plotar esses dados em uma tabela ou painel e compartilhá-los com sua equipe. Aqui está um exemplo de uma tabela com os dados acima, criada usando Ubiq.





Se você deseja criar gráficos, painéis e relatórios do banco de dados MySQL, experimente o Ubiq. Oferecemos um teste gratuito de 14 dias.