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.