Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tính phần trăm hai cột trong MySQL

Đôi khi bạn có thể chỉ cần tính toán một tỷ lệ phần trăm của hai cột trong cơ sở dữ liệu MySQL. Dưới đây là cách dễ dàng tính toán tỷ lệ phần trăm của hai cột trong MySQL.

Cách tính phần trăm hai cột trong MySQL

Đây là SQL để tính toán tỷ lệ phần trăm của hai cột trong MySQL. Giả sử bạn có bảng sau - doanh số (sales_rep, sale, target)

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

Giả sử bạn muốn tính toán gain_percent là doanh số bán hàng / mục tiêu * 100 cho mỗi đại diện bán hàng.

Đây là truy vấn SQL để tính toán tỷ lệ phần trăm của hai cột (bán hàng, mục tiêu). Bạn có thể trực tiếp tính toán nó một cách nhanh chóng bằng cách sử dụng các toán tử chia và nhân, như được hiển thị bên dưới.

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

Phần thưởng đọc:Cách tự động hóa các truy vấn Pivot Table trong MySQL

Nếu bạn muốn làm tròn số phần trăm thành 2 chữ số thập phân, bạn có thể sử dụng hàm ROUND như được hiển thị

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

Nếu bạn chỉ muốn tính tỷ lệ phần trăm của hai cột cho các hàng cụ thể, hãy thêm mệnh đề WHERE như được in đậm bên dưới

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

Phần thưởng đọc:Cách tính toán trung bình động trong MySQL

Nếu tổng dữ liệu của bạn được trải rộng trên nhiều cột, như được hiển thị bên dưới,

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

thì bạn có thể tính toán phần trăm của mỗi cột bằng cách tổng cộng các giá trị của chúng một cách nhanh chóng, như được hiển thị bên dưới.

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

Bạn có thể tùy chỉnh truy vấn trên để tính toán tỷ lệ phần trăm của hai cột, theo yêu cầu của bạn.

Bạn cũng có thể sử dụng công cụ báo cáo để vẽ dữ liệu này trên bảng hoặc trang tổng quan và chia sẻ dữ liệu đó với nhóm của bạn. Dưới đây là ví dụ về bảng có dữ liệu ở trên, được tạo bằng Ubiq.

Nếu bạn muốn tạo biểu đồ, trang tổng quan và báo cáo từ cơ sở dữ liệu MySQL, bạn có thể thử Ubiq. Chúng tôi cung cấp bản dùng thử miễn phí 14 ngày.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tính năng tự động tăng của MySQL lại tăng trên các lần chèn không thành công?

  2. My MySQL trigger không hoạt động, cú pháp đơn giản, không phức tạp

  3. Lỗi MySql:Không thể cập nhật bảng trong hàm / trình kích hoạt được lưu trữ vì nó đã được sử dụng bởi câu lệnh gọi hàm / trình kích hoạt được lưu trữ này

  4. JSON_SET () - Chèn hoặc cập nhật giá trị trong tài liệu JSON trong MySQL

  5. MySQL không sử dụng chỉ mục với mệnh đề WHERE IN?