คุณสามารถใช้ฟังก์ชันการรวม SUM() ร่วมกับ IF เพื่อตรวจสอบว่าค่าปรากฏในกลุ่ม GROUP BY หรือไม่
ให้เราสร้างตารางสาธิตก่อน
mysql> สร้างตาราง GroupbygroupDemo -> ( -> UserId int, -> UserName varchar(20) -> );Query OK, 0 แถวได้รับผลกระทบ (1.48 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า GroupbygroupDemo (10,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า GroupbygroupDemo (10,'Carol'); Query OK, 1 แถวได้รับผลกระทบ (0.08 วินาที )mysql> แทรกลงในค่า GroupbygroupDemo (10,'Carol'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า GroupbygroupDemo (20, 'David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า GroupbygroupDemo (30, 'John'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า GroupbygroupDemo (30, 'David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรก ลงในค่า GroupbygroupDemo (30,'Mike');Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก GroupbygroupDemo;
ผลลัพธ์ที่ได้จะเป็นดังนี้
<ก่อนหน้า>+---------+----------+| รหัสผู้ใช้ | ชื่อผู้ใช้ |+-------+----------+| 10 | จอห์น || 10 | แครอล || 10 | แครอล || 20 | เดวิด || 30 | จอห์น || 30 | เดวิด || 30 | ไมค์ |+---------+----------+7 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อตรวจสอบว่าค่าปรากฏในกลุ่ม GROUP BY
mysql> เลือก UserId, -> if(sum(UserName='David'),'YES','NO') เป็น Correct_Name_David -> จาก GroupbygroupDemo -> จัดกลุ่มตาม UserId;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------+--------------------+| รหัสผู้ใช้ | Correct_Name_David |+-------+--------------------+| 10 | ไม่ || 20 | ใช่ || 30 | ใช่ |+-------+--------------------+3 แถวในชุด (0.08 วินาที)