Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So berechnen Sie den Prozentsatz von zwei Spalten in MySQL

Manchmal müssen Sie möglicherweise einfach einen Prozentsatz von zwei Spalten in MySQL-Datenbanken berechnen. So berechnen Sie ganz einfach den Prozentsatz von zwei Spalten in MySQL.

So berechnen Sie den Prozentsatz von zwei Spalten in MySQL

Hier sind die SQL zur Berechnung des Prozentsatzes von zwei Spalten in MySQL. Nehmen wir an, Sie haben die folgende Tabelle – sales(sales_rep,sale,goal)

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

Angenommen, Sie möchten für jeden Vertriebsmitarbeiter „attainment_percent“ als Verkauf/Ziel*100 berechnen.

Hier ist die SQL-Abfrage zur Berechnung des Prozentsatzes von zwei Spalten (Verkauf, Ziel). Sie können es direkt im laufenden Betrieb mit Divisions- und Multiplikationsoperatoren berechnen, wie unten gezeigt.

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

Bonuslektüre: Automatisieren von Pivot-Tabellenabfragen in MySQL

Wenn Sie die Prozentzahlen auf 2 Dezimalstellen runden möchten, können Sie die ROUND-Funktion wie gezeigt verwenden

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

Wenn Sie den Prozentsatz von zwei Spalten nur für bestimmte Zeilen berechnen möchten, fügen Sie die WHERE-Klausel hinzu, wie unten fett gedruckt

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

Bonuslektüre: So berechnen Sie den gleitenden Durchschnitt in MySQL

Wenn Ihre Gesamtdaten wie unten gezeigt auf mehrere Spalten verteilt sind,

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

dann können Sie den Prozentsatz jeder Spalte berechnen, indem Sie ihre Werte wie unten gezeigt im laufenden Betrieb summieren.

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

Sie können die obige Abfrage anpassen, um den Prozentsatz von zwei Spalten gemäß Ihren Anforderungen zu berechnen.

Sie können diese Daten auch mit einem Reporting-Tool in einer Tabelle oder einem Dashboard darstellen und mit Ihrem Team teilen. Hier ist ein Beispiel einer Tabelle mit obigen Daten, die mit Ubiq erstellt wurde.

Wenn Sie Diagramme, Dashboards und Berichte aus einer MySQL-Datenbank erstellen möchten, können Sie Ubiq ausprobieren. Wir bieten eine 14-tägige kostenlose Testversion an.