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

จะทำผลรวมของค่าแถวก่อนหน้ากับแถวปัจจุบันและแสดงผลในแถวอื่นด้วย MySQL cross join ได้อย่างไร


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable(Value int);ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.79 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable (50) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า DemoTable (20) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.68 วินาที) mysql> แทรกลงในค่า DemoTable ( 30);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+| ความคุ้มค่า |+-------+| 50 || 20 || 30 |+-------+3 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะทำผลรวมของแถวก่อนหน้าใน MySQL ผลรวมของแถวก่อนหน้า -

mysql> เลือก t.Value, (@s :=@s + t.Value) เป็น Number จาก DemoTable t cross join (เลือก @s :=0) p สั่งซื้อโดย t.Value;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+---------+| ความคุ้มค่า | เบอร์ |+-------+ --------+| 20 | 20 || 30 | 50 || 50 | 100 |+-------+ --------+3 แถวในชุด (0.07 วินาที)