Sum() เป็นฟังก์ชันรวมใน MySQL คุณสามารถใช้คิวรีผลรวมกับเงื่อนไข if เพื่อให้เข้าใจผลรวมของแบบสอบถามที่มีเงื่อนไข if ให้เราสร้างตาราง
แบบสอบถามเพื่อสร้างตาราง −
mysql> สร้างตาราง SumWithIfCondition −> ( −> ModeOfPayment varchar(100) −> , −> Amount int −> );Query OK, 0 แถวได้รับผลกระทบ (1.60 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า SumWithIfCondition ('ออฟไลน์',10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออนไลน์', 100); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่า SumWithIfCondition ('ออฟไลน์', 20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออนไลน์', 200); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออฟไลน์', 30); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออนไลน์', 300); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก SumWithIfCondition;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+--------------+-------+| โหมดการชำระเงิน | จำนวน |+--------------+-------+| ออฟไลน์ | 10 || ออนไลน์ | 100 || ออฟไลน์ | 20 || ออนไลน์ | 200 || ออฟไลน์ | 30 || ออนไลน์ | 300 |+-----------------------+-------+6 แถวในชุด (0.00 วินาที)นี่คือการสืบค้นผลรวมที่มีเงื่อนไข if
กรณีที่ 1 - ถ้าสำหรับโหมดการชำระเงินออนไลน์
แบบสอบถามมีดังนี้ −
mysql> เลือก sum(if(ModeOfPayment ='Online',Amount,0)) เป็น TotalAmount จาก SumWithIfCondition;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+-------------+| ยอดรวม |+-------------+| 600 |+-------------+1 แถวในชุด (0.00 วินาที)กรณีที่ 2 - ถ้าสำหรับโหมดการชำระเงินออฟไลน์
แบบสอบถามมีดังนี้ −
mysql> เลือก sum(if(ModeOfPayment ='Offline',Amount,0)) เป็น TotalAmount จาก SumWithIfCondition;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+-------------+| ยอดรวม |+-------------+| 60 |+-------------+1 แถวในชุด (0.00 วินาที)