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.