Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào chúng ta có thể chia tập kết quả được trả về bởi MySQL thành các nhóm?


Nó có thể được 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í phân nhóm với sự trợ giúp của mệnh đề GROUP BY. Do tiêu chí phân nhóm đã 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ả được trả về bởi câu lệnh MySQL SELECT sẽ được chia thành các nhóm.

Ví dụ

Sau đây là một ví dụ điển hình để hiểu nó -

Chúng tôi có một bảng có tên là 'nhân viên' 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ự trợ giúp của tập lệnh sau, chúng tôi 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 hợp kết quả thành các nhóm Asso.Prof, tổng số là 1 và có mức lương trung bình là 74000, Asst.Prof, tổng số là 2 và có mức lương trung bình là 55000 và GS, tổng số là 2 và có mức lương trung bình là 87500 .