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

จะทราบได้อย่างไรว่าค่าปรากฏในกลุ่ม GROUP BY ใน MySQL?


คุณสามารถใช้ฟังก์ชันการรวม 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 วินาที)