เป็นเพราะหากไม่มีส่วนคำสั่ง GROUP BY ผลลัพธ์ที่ส่งคืนโดย MySQL อาจทำให้เข้าใจผิดได้ เรากำลังยกตัวอย่างต่อไปนี้ในตาราง 'นักเรียน' ด้านล่างเพื่อแสดง -
mysql> Select * from Student; +------+---------+---------+-----------+ | Id | Name | Address | Subject | +------+---------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 15 | Harshit | Delhi | Commerce | | 20 | Gaurav | Jaipur | Computers | +------+---------+---------+-----------+ 4 rows in set (0.00 sec) mysql> Select count(*), Name from Student; +----------+--------+ | count(*) | name | +----------+--------+ | 4 | Gaurav | +----------+--------+ 1 row in set (0.00 sec)
ดังที่เราสามารถสังเกตได้จากผลลัพธ์ของการสืบค้นด้านบนว่ามันส่งคืนผลลัพธ์ของฟังก์ชันกลุ่ม COUNT(*) เป็นจำนวนแถวทั้งหมดในตาราง แต่ค่า 'Gaurav' ในฟิลด์ 'Name' นั้นทำให้เข้าใจผิดเพราะเราทำบนพื้นฐานของอะไร ไม่ว่าจะเป็นค่าแรกของคอลัมน์หรือจัดเก็บหลายครั้งในคอลัมน์ MySQL จะคืนค่ากลับมา
ตอนนี้ถ้าเราจะเขียนแบบสอบถามนี้ด้วยประโยค GROUP BY แล้วชุดผลลัพธ์จะเป็นดังนี้ −
mysql> Select count(*), name from student GROUP BY id; +----------+---------+ | count(*) | name | +----------+---------+ | 1 | Gaurav | | 1 | Aarav | | 1 | Harshit | | 1 | Gaurav | +----------+---------+ 4 rows in set (0.00 sec)
สามารถสังเกตได้จากชุดผลลัพธ์ข้างต้นว่าด้วยความช่วยเหลือของประโยค GROUP BY เราได้ผลลัพธ์ที่มีความหมาย