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

หาผลรวมของแถวเฉพาะบางแถวใน MySQL

การหาผลรวม (SUM) ของแถวเฉพาะกลุ่มใน MySQL

ใช้ฟังก์ชัน SUM() ร่วมกับ WHERE ... IN (...) เพื่อรวมค่าเฉพาะแถวที่ต้องการ

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Amount int
);
mysql> insert into DemoTable(Amount) values(400);
mysql> insert into DemoTable(Amount) values(10);
mysql> insert into DemoTable(Amount) values(50);
mysql> insert into DemoTable(Amount) values(500);
mysql> insert into DemoTable(Amount) values(80);

ข้อมูลทั้งหมด:

+----+--------+
| Id | Amount |
+----+--------+
| 1  | 400    |
| 2  | 10     |
| 3  | 50     |
| 4  | 500    |
| 5  | 80     |
+----+--------+

คิวรีหาผลรวมเฉพาะ Id 1, 4, 5 (400 + 500 + 80):

mysql> select sum(Amount) from DemoTable where Id in (1,4,5);
+-------------+
| sum(Amount) |
+-------------+
| 980         |
+-------------+

การประยุกต์ใช้:

  • WHERE Id BETWEEN 1 AND 3 - ช่วงต่อเนื่อง
  • WHERE Amount > 100 - เงื่อนไขค่า
  • WHERE Category IN ('A','B') - หลายหมวดหมู่
  • รวมกับ GROUP BY เพื่อ Sum ต่อกลุ่ม

ประสิทธิภาพ: ควรมี Index บนคอลัมน์ใน WHERE (เช่น Id เป็น PK มี Index อยู่แล้ว)