ใช้ SUM(CASE WHEN ... THEN ... ELSE ... END) เพื่อรวมค่าเฉพาะที่ตรงเงื่อนไข
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Price INT,
isValidCustomer BOOLEAN,
FinalPrice INT
);
mysql> INSERT INTO DemoTable(Price, isValidCustomer, FinalPrice) VALUES
(20, false, 40), (45, true, 10), (89, true, 50), (200, false, 100);
ดูข้อมูล
mysql> SELECT * FROM DemoTable;
+----+-------+-----------------+------------+
| Id | Price | isValidCustomer | FinalPrice |
+----+-------+-----------------+------------+
| 1 | 20 | 0 | 40 |
| 2 | 45 | 1 | 10 |
| 3 | 89 | 1 | 50 |
| 4 | 200 | 0 | 100 |
+----+-------+-----------------+------------+
คำนวณ: ลูกค้าที่ถูกต้อง (true) ใช้ Price, ไม่ถูกต้อง (false) ใช้ FinalPrice
mysql> SELECT SUM(
-> CASE WHEN isValidCustomer = true THEN Price ELSE FinalPrice END
-> ) AS TotalPrice FROM DemoTable;
ผลลัพธ์
+------------+
| TotalPrice |
+------------+
| 274 |
+------------+
การคำนวณ: (False→40) + (True→45) + (True→89) + (False→100) = 40+45+89+100 = 274