ในการสร้างคอลัมน์ผลรวมสะสมใน MySQL คุณต้องสร้างตัวแปรและตั้งค่าเป็น 0 ผลรวมสะสมจะเพิ่มค่าถัดไปทีละขั้นด้วยค่าปัจจุบัน
ประการแรก คุณต้องสร้างตัวแปรด้วยความช่วยเหลือของ SET ไวยากรณ์มีดังนี้ −
set @anyVariableName:=0;
ไวยากรณ์ในการสร้างคอลัมน์ผลรวมสะสมใน MySQL มีดังนี้ -
select yourColumnName1,yourColumnName2,........N,(@anyVariableName :=@anyVariableName + yourColumnName2) เป็น anyVariableName จากลำดับ yourTableName โดย yourColumnName1;
เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตาราง ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง −
mysql> สร้างตาราง CumulativeSumDemo −> ( −> BookId int, −> BookPrice int −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.67 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่ง select แบบสอบถามเพื่อแทรกบันทึกมีดังนี้ -
mysql> แทรกลงในค่า CumulativeSumDemo (101,400) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า CumulativeSumDemo (102,500) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า CumulativeSumDemo ( 103,600); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า CumulativeSumDemo (104,1000); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)
แสดงระเบียนทั้งหมดที่ฉันแทรกโดยใช้คำสั่ง insert แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก CumulativeSumDemo;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+---------+-----------+| รหัสหนังสือ | ราคาหนังสือ |+-------+-----------+| 101 | 400 || 102 | 500 || 103 | 600 || 104 | 1,000 |+-------+-----------+4 แถวในชุด (0.00 วินาที)หากต้องการเพิ่มคอลัมน์ผลรวมสะสม ก่อนอื่นคุณต้องสร้างตัวแปร แบบสอบถามมีดังนี้ −
mysql> set @CumulativeSum :=0;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)
ใช้ไวยากรณ์ข้างต้นที่กล่าวถึงในตอนต้นเพื่อเพิ่มคอลัมน์ผลรวมสะสม แบบสอบถามมีดังนี้ −
mysql> เลือก BookId,BookPrice,(@CumulativeSum :=@CumulativeSum + BookPrice) เป็น CumSum −> จากคำสั่ง CumulativeSumDemo ตาม BookId;
ต่อไปนี้เป็นผลลัพธ์ ที่นี่ยังมองเห็นคอลัมน์ผลรวมสะสม -
<ก่อนหน้า>+---------+-----------+-------+| รหัสหนังสือ | ราคาหนังสือ | CumSum |+---------+-----------+-------+| 101 | 400 | 400 || 102 | 500 | 900 || 103 | 600 | 1500 || 104 | 1000 | 2500 |+-------+-----------+-------+4 แถวในชุด (0.00 วินาที)