Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีแบ่งชุดผลลัพธ์ที่ MySQL คืนมาเป็นกลุ่มๆ

ทำได้โดยใช้ GROUP BY ในคำสั่ง SELECT สามารถระบุคอลัมน์เป็นเกณฑ์การจัดกลุ่ม ด้วย GROUP BY แถวที่มีค่าเหมือนกันในคอลัมน์ที่ระบุจะถูกจัดเป็นกลุ่มเดียวกัน ดังนั้นชุดผลลัพธ์จะถูกแบ่งเป็นกลุ่มๆ

ตัวอย่าง

สมมติมีตาราง employees ดังนี้:

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)

แบ่งผลลัพธ์เป็นกลุ่มด้วยคำสั่งต่อไปนี้:

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)

คำสั่งคืนกลุ่ม Asso.Prof จำนวน 1 คน เงินเดือนเฉลี่ย 74000, Asst.Prof จำนวน 2 คน เงินเดือนเฉลี่ย 55000, Prof จำนวน 2 คน เงินเดือนเฉลี่ย 87500