การหาผลรวม (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 อยู่แล้ว)