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

เราจะแบ่งชุดผลลัพธ์ที่ส่งคืนโดย MySQL ออกเป็นกลุ่มๆ ได้อย่างไร


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

ตัวอย่าง

ต่อไปนี้คือตัวอย่างที่ดีเพื่อให้เข้าใจ -

เรามีตารางชื่อ 'พนักงาน' ดังนี้ -

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)

แบบสอบถามด้านบนส่งคืนผลลัพธ์ที่กำหนดเป็นกลุ่มของ รศ.ศ. รวม 1 ในจำนวนและมีเงินเดือนเฉลี่ย 74000 ผศ. ทั้งหมด 2 ในจำนวนและมีเงินเดือนเฉลี่ย 55000 และศาสตราจารย์รวม 2 ในจำนวนและมีเงินเดือนเฉลี่ย 87500 .