Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tính phần trăm người dùng sinh giữa 1980-1996 trong MySQL

Sử dụng biểu thức SUM(condition) * 100 / COUNT(*) để tính phần trăm hàng thỏa mãn điều kiện.

Tạo bảng và dữ liệu ngày sinh (dạng chuỗi)

mysql> CREATE TABLE DemoTable (
    -> DateOfBirth VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.55 sec)
mysql> INSERT INTO DemoTable VALUES('2019/01/31'), ('1980/02/01'), ('1985/04/10'), ('1995/06/04'), ('1990/12/24'), ('1996/11/04');
Query OK, 6 rows affected (0.19 sec)

Truy vấn tính phần trăm

mysql> SELECT SUM(DateOfBirth BETWEEN '1980/01/01' AND '1996/12/31') * 100 / COUNT(*) AS Percentage FROM DemoTable;

Kết quả:

+------------+
| Percentage |
+------------+
| 83.3333    |
+------------+
1 row in set (0.00 sec)

Giải thích:

  • DateOfBirth BETWEEN ... trả về 1 (true) hoặc 0 (false)
  • SUM(...) đếm số hàng true = 5
  • COUNT(*) = 6 tổng số hàng
  • 5 * 100 / 6 = 83.33%

Lưu ý: So sánh chuỗi ngày tháng chỉ đúng nếu định dạng cố định (YYYY/MM/DD). Nên lưu kiểu DATE.