แทนที่จะใช้ ORDER BY ภายใน GROUP BY คุณสามารถใช้ฟังก์ชันการรวม MAX()
ไวยากรณ์มีดังนี้ −
เลือก yourNameColumnName,MAX(yourRankColumnName) จาก yourTableNameGROUP BY yourNameColumnName;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง MaxDemo -> ( -> UserId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(20), -> UserRank int -> );Query OK, 0 แถวได้รับผลกระทบ (0.77 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงใน MaxDemo(UserName,UserRank) values('Larry',2);Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงใน MaxDemo(ชื่อผู้ใช้,UserRank) ค่า('Sam',1);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงใน MaxDemo(ชื่อผู้ใช้ อันดับผู้ใช้) ค่า ('Sam',2);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)
ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก MaxDemo;
ผลลัพธ์
<ก่อนหน้า>+---------+----------+----------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อันดับผู้ใช้ |+---------+----------+----------+| 1 | แลร์รี่ | 2 || 2 | แซม | 1 || 3 | แซม | 2 |+-------+----------+----------+3 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อใช้ฟังก์ชัน MAX() เพื่อให้ได้ผลลัพธ์ -
mysql> เลือกชื่อผู้ใช้ MAX(UserRank) จากกลุ่ม MaxDemo ตามชื่อผู้ใช้