Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak obliczyć procent dwóch kolumn w MySQL?

Czasami może być konieczne obliczenie procentu dwóch kolumn w bazach danych MySQL. Oto jak łatwo obliczyć procent dwóch kolumn w MySQL.

Jak obliczyć procent dwóch kolumn w MySQL

Oto SQL do obliczenia procentu dwóch kolumn w MySQL. Załóżmy, że masz następującą tabelę – sprzedaż(przedstawiciel_sprzedaży,sprzedaż,cel)

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

Załóżmy, że chcesz obliczyć odsetek_osiągnięć jako sprzedaż/cel*100 dla każdego przedstawiciela handlowego.

Oto zapytanie SQL do obliczenia procentu dwóch kolumn (sprzedaż, cel). Możesz to obliczyć bezpośrednio w locie, używając operatorów dzielenia i mnożenia, jak pokazano poniżej.

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

Przeczytaj dodatkowe: Jak zautomatyzować zapytania tabel przestawnych w MySQL

Jeśli chcesz zaokrąglić liczby procentowe do 2 miejsc po przecinku, możesz użyć funkcji ZAOKR, jak pokazano

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

Jeśli chcesz obliczyć procent dwóch kolumn tylko dla określonych wierszy, dodaj klauzulę WHERE, jak pokazano poniżej pogrubioną

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

Przeczytaj dodatkowe: Jak obliczyć średnią kroczącą w MySQL

Jeśli wszystkie dane są rozłożone na wiele kolumn, jak pokazano poniżej,

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

następnie możesz obliczyć procent każdej kolumny, sumując ich wartości w locie, jak pokazano poniżej.

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

Możesz dostosować powyższe zapytanie, aby obliczyć procent dwóch kolumn, zgodnie z wymaganiami.

Możesz również użyć narzędzia do raportowania, aby wykreślić te dane w tabeli lub na pulpicie nawigacyjnym i udostępnić je swojemu zespołowi. Oto przykład tabeli z powyższymi danymi, utworzonej za pomocą Ubiq.

Jeśli chcesz tworzyć wykresy, dashboardy i raporty z bazy danych MySQL, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak rozwiązać niejednoznaczne nazwy kolumn podczas pobierania wyników?

  2. MySQL — BŁĄD 1045 — Odmowa dostępu

  3. tomcat7 — źródło danych jdbc — najprawdopodobniej spowoduje to wyciek pamięci

  4. Pojedyncze cudzysłowy, podwójne cudzysłowy i znaki wsteczne w MySQL

  5. Czy mysqli_real_escape_string wystarczy, aby uniknąć wstrzyknięcia SQL lub innych ataków SQL?