Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да изчислим процента от две колони в MySQL

Понякога може да се наложи просто да изчислите процент от две колони в MySQL бази данни. Ето как лесно да изчислите процента на две колони в MySQL.

Как да изчислим процента от две колони в MySQL

Ето SQL за изчисляване на процента на две колони в MySQL. Да приемем, че имате следната таблица – 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 |
+-----------+------+------+

Да приемем, че искате да изчислите attainment_percent като продажба/цел*100 за всеки търговски представител.

Ето SQL заявката за изчисляване на процента от две колони (продажба, цел). Можете директно да го изчислите в движение, като използвате операторите за деление и умножение, както е показано по-долу.

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

Бонус за четене: Как да автоматизирате запитванията за обобщена таблица в MySQL

Ако искате да закръглите процентните числа до 2 знака след десетичната запетая, можете да използвате функцията ROUND, както е показано

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

Ако искате да изчислите процента на две колони само за конкретни редове, добавете клауза WHERE, както е показано по-долу с удебелен шрифт

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

Бонус за четене: Как да изчислим пълзящата средна в MySQL

Ако общите ви данни са разпределени в няколко колони, както е показано по-долу,

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

след това можете да изчислите процента на всяка колона, като сумирате стойностите им в движение, както е показано по-долу.

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

Можете да персонализирате заявката по-горе, за да изчислите процента на две колони, според вашето изискване.

Можете също да използвате инструмент за отчитане, за да начертаете тези данни в таблица или табло и да ги споделите с вашия екип. Ето пример за таблица с горните данни, създадена с Ubiq.

Ако искате да създавате диаграми, табла за управление и отчети от MySQL база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам GROUP BY за конкатенация на низове в MySQL?

  2. HAProxy:Всички ресурси на Severalnines

  3. Spring Boot CRUD Пример с MySQL

  4. MySQL:Изберете всички дати в диапазон, дори ако няма налични записи

  5. Как да импортирате база данни с помощта на phpMyAdmin