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

แบบสอบถาม MySQL เพื่อคำนวณผลรวมจาก 5 ตารางที่มีคอลัมน์ที่คล้ายกันชื่อ "UP"?


สำหรับสิ่งนี้ ให้ใช้ UNION ALL ร่วมกับ SUM() ให้เราสร้าง 5 ตาราง -

mysql> สร้างตาราง DemoTable1977 ( UP int ) เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1977 (10) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1977 ( 20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> เลือก * จาก DemoTable1977;+------+| ขึ้น |+------+| 10 || 20 |+------+2 แถวในชุด (0.00 วินาที)mysql> สร้างตาราง DemoTable1978 ( UP int ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1978 (30); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> เลือก * จาก DemoTable1978;+------+| ขึ้น |+------+| 30 |+------+1 แถวในชุด (0.00 วินาที)mysql> สร้างตาราง DemoTable1979 ( UP int ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1979 (40); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> เลือก * จาก DemoTable1979;+------+| ขึ้น |+------+| 40 |+------+1 แถวในชุด (0.00 วินาที)mysql> สร้างตาราง DemoTable1980 ( UP int ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1980 (50); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> เลือก * จาก DemoTable1980;+------+| ขึ้น |+------+| 50 |+------+1 แถวในชุด (0.00 วินาที)mysql> สร้างตาราง DemoTable1981 ( UP int ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1981 (60); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.00 วินาที)mysql> เลือก * จาก DemoTable1981;+------+| ขึ้น |+------+| 60 |+------+1 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อคำนวณผลรวมจาก 5 ตารางที่มีคอลัมน์เดียวชื่อ "UP" -

mysql> เลือกผลรวม (TotalSum) จาก ( เลือกผลรวม (UP) เป็น TotalSum จาก DemoTable1977 รวมทั้งหมดที่เลือก (UP) จาก DemoTable1978 รวมทั้งหมดที่เลือก (UP) จาก DemoTable1979 รวมทั้งหมดที่เลือกรวม (UP) จาก DemoTable1980 รวมทั้งหมด เลือก sum(UP) จาก DemoTable1981 ) tbl;

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

<ก่อนหน้า>+--------------+| ผลรวม(ผลรวมทั้งหมด) |+--------------+| 210 |+--------------+1 แถวในชุด (0.00 วินาที)