ในการใช้ HAVING กับ GROUPBY ใน MySQL ต่อไปนี้คือ syntax ที่นี่เราได้กำหนดเงื่อนไขภายใต้ HAVING เพื่อตรวจสอบเงื่อนไขค่าสูงสุด -
เลือก yourColumnName จาก yourTableName GROUP BY yourColumnName HAVING MAX(yourColumnName)ให้เราดูตัวอย่างโดยการสร้างตารางใน MySQL −
mysql> สร้างตาราง WhereAfterGroupDemo-> (-> UserId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY,-> UserProcess int,-> UserThreadId int-> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (5.74 วินาที)ตัวอย่าง
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงใน WhereAfterGroupDemo(UserProcess,UserThreadId) ค่า (1211,3); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงใน WhereAfterGroupDemo (UserProcess, UserThreadId) ค่า (1412,3); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.39 วินาที) mysql> แทรกลงใน WhereAfterGroupDemo (UserProcess, UserThreadId) ค่า (1510,4); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงใน WhereAfterGroupDemo (UserProcess, UserThreadId) ค่า (1511,4);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.31 วินาที)แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก WhereAfterGroupDemo;ผลลัพธ์
<ก่อนหน้า>+---------+-------------+-------------+| รหัสผู้ใช้ | UserProcess | UserThreadId |+--------+-------------+--------------+| 1 | 1211 | 3 || 2 | 1412 | 3 || 3 | 1510 | 4 || 4 | 1511 | 4 |+---------+-------------+--------------+4 แถวในชุด (0.00 วินาที)
ต่อไปนี้เป็นแบบสอบถามเพื่อใช้ HAVING และ GROUP BY และรับ UserThreaId ที่มีกระบวนการน้อยกว่า 1510 -
mysql> เลือก UserThreadId จาก WhereAfterGroupDemo GROUP BY UserThreadId HAVING MAX (UserProcess) <1510;