Někdy možná budete muset jednoduše vypočítat procento ze dvou sloupců v databázích MySQL. Zde je návod, jak snadno vypočítat procento ze dvou sloupců v MySQL.
Jak vypočítat procento dvou sloupců v MySQL
Zde jsou SQL pro výpočet procenta dvou sloupců v MySQL. Řekněme, že máte následující tabulku – prodej(prodej_rep,prodej,cíl)
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 | +-----------+------+------+
Řekněme, že chcete vypočítat attainment_percent jako prodej/cíl*100 pro každého obchodního zástupce.
Zde je dotaz SQL pro výpočet procenta ze dvou sloupců (prodej, cíl). Můžete jej vypočítat přímo za běhu pomocí operátorů dělení a násobení, jak je uvedeno níže.
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 | +-----------+------+------+--------------------+
Bonusové čtení: Jak automatizovat dotazy na kontingenční tabulky v MySQL
Pokud chcete zaokrouhlit procenta na 2 desetinná místa, můžete použít funkci ROUND, jak je znázorněno
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 | +-----------+------+------+--------------------+
Pokud chcete vypočítat procento ze dvou sloupců pouze pro konkrétní řádky, přidejte klauzuli WHERE, jak je uvedeno níže tučně
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 | +-----------+------+------+--------------------+
Bonusové čtení: Jak vypočítat klouzavý průměr v MySQL
Pokud jsou vaše celková data rozložena do více sloupců, jak je uvedeno níže,
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 | +-----------+------+-------+-------+
pak můžete vypočítat procento každého sloupce sečtením jejich hodnot za běhu, jak je znázorněno níže.
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 | +-----------+------+-------+-------+----------+-----------+-----------+
Výše uvedený dotaz můžete přizpůsobit tak, aby vypočítal procento ze dvou sloupců, podle vašich požadavků.
Můžete také použít nástroj pro vytváření sestav k vykreslení těchto dat do tabulky nebo řídicího panelu a sdílet je se svým týmem. Zde je příklad tabulky s výše uvedenými daty vytvořené pomocí Ubiq.
Pokud chcete vytvářet grafy, dashboardy a sestavy z databáze MySQL, můžete zkusit Ubiq. Nabízíme 14denní bezplatnou zkušební verzi.