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

Cách chia tập kết quả trả về bởi MySQL thành các nhóm?

Việc này có thể thực hiện bằng cách sử dụng mệnh đề GROUP BY trong câu lệnh SELECT. Chúng ta có thể chỉ định một cột làm tiêu chí nhóm với sự giúp đỡ của mệnh đề GROUP BY. Do tiêu chí nhóm được chỉ định, các hàng có cùng giá trị trong một cột cụ thể được coi là một nhóm duy nhất. Theo cách này, tập kết quả trả về bởi câu lệnh SELECT MySQL sẽ được chia thành các nhóm.

Ví dụ

Dưới đây là ví dụ tốt để hiểu rõ:

Chúng ta có một bảng tên 'employees' như sau:

mysql> SELECT * FROM employees;
+------+-------------+--------+------------+
| id   | designation | Salary | DoJ        |
+------+-------------+--------+------------+
| 100  | Asst.Prof   | 50000  | 2016-06-15 |
| 300  | Prof        | 85000  | 2010-05-18 |
| 250  | Asso.Prof   | 74000  | 2013-02-12 |
| 400  | Prof        | 90000  | 2009-05-19 |
| 200  | Asst.Prof   | 60000  | 2015-05-11 |
+------+-------------+--------+------------+
5 rows in set (0.00 sec)

Bây giờ với sự giúp đỡ của script sau, chúng ta sẽ chia đầu ra thành các nhóm:

mysql> SELECT designation, COUNT(*), AVG(salary) FROM employees GROUP BY designation;
+-------------+----------+-------------+
| designation | COUNT(*) | AVG(salary) |
+-------------+----------+-------------+
| Asso.Prof   | 1        | 74000.0000  |
| Asst.Prof   | 2        | 55000.0000  |
| Prof        | 2        | 87500.0000  |
+-------------+----------+-------------+
3 rows in set (0.00 sec)

Truy vấn trên trả về tập kết quả thành các nhóm: Asso.Prof (1 người, lương TB 74000), Asst.Prof (2 người, lương TB 55000), Prof (2 người, lương TB 87500).