Ibland kan du behöva helt enkelt beräkna en procentandel av två kolumner i MySQL-databaser. Så här beräknar du enkelt procentandelen av två kolumner i MySQL.
Hur man beräknar procentandelen av två kolumner i MySQL
Här är SQL för att beräkna procentandelen av två kolumner i MySQL. Låt oss säga att du har följande tabell – försäljning(försäljningsrep,försäljning,må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 | +-----------+------+------+
Låt oss säga att du vill beräkna atttainment_percent som försäljning/mål*100 för varje säljare.
Här är SQL-frågan för att beräkna procentandelen av två kolumner (försäljning, mål). Du kan beräkna det direkt med hjälp av divisions- och multiplikationsoperatorer, som visas nedan.
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 | +-----------+------+------+--------------------+
Bonusläsning: Hur man automatiserar pivottabellsfrågor i MySQL
Om du vill avrunda procenttalen till 2 decimaler kan du använda funktionen RUNDA som visas
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 | +-----------+------+------+--------------------+
Om du bara vill beräkna procentandelen av två kolumner för specifika rader, lägg till WHERE-sats som visas nedan i fetstil
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 | +-----------+------+------+--------------------+
Bonusläsning: Hur man beräknar glidande medelvärde i MySQL
Om din totala data är spridd över flera kolumner, som visas nedan,
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 | +-----------+------+-------+-------+
sedan kan du beräkna procent av varje kolumn genom att summera deras värden i farten, som visas nedan.
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 | +-----------+------+-------+-------+----------+-----------+-----------+
Du kan anpassa frågan ovan för att beräkna procentandelen av två kolumner, enligt dina krav.
Du kan också använda ett rapportverktyg för att plotta denna data på en tabell eller instrumentpanel och dela den med ditt team. Här är ett exempel på en tabell med ovanstående data, skapad med Ubiq.
Om du vill skapa diagram, instrumentpaneler och rapporter från MySQL-databasen kan du prova Ubiq. Vi erbjuder en 14-dagars gratis provperiod.