การคำนวณผลรวมจากการคูณคอลัมน์ด้วย GROUP BY
เมื่อต้องการคำนวณค่ารวมจากการคูณสองคอลัมน์ (เช่น ราคา × น้ำหนัก) และรวมตามกลุ่ม ให้ใช้ SUM(column1 * column2) ร่วมกับ GROUP BY
ไวยากรณ์ (Syntax)
SELECT yourColumnName1, SUM(yourColumnName2 * yourColumnName3) AS anyAliasName
FROM yourTableName
GROUP BY yourColumnName1;
ตัวอย่างการใช้งาน
สร้างตารางสินค้า:
mysql> CREATE TABLE calculateValueDemo (
-> Id INT,
-> ProductPrice INT,
-> ProductWeight INT
-> );
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO calculateValueDemo VALUES(100, 35, 5);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO calculateValueDemo VALUES(101, 50, 3);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO calculateValueDemo VALUES(100, 100, 4);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO calculateValueDemo VALUES(101, 500, 2);
Query OK, 1 row affected (0.22 sec)
ข้อมูลทั้งหมด:
mysql> SELECT * FROM calculateValueDemo;
+------+--------------+---------------+
| Id | ProductPrice | ProductWeight |
+------+--------------+---------------+
| 100 | 35 | 5 |
| 101 | 50 | 3 |
| 100 | 100 | 4 |
| 101 | 500 | 2 |
+------+--------------+---------------+
4 rows in set (0.00 sec)
คำนวณค่ารวม (Price × Weight) แยกตาม Id:
mysql> SELECT Id, SUM(ProductPrice * ProductWeight) AS Total
-> FROM calculateValueDemo
-> GROUP BY Id;
ผลลัพธ์:
+------+-------+
| Id | Total |
+------+-------+
| 100 | 575 |
| 101 | 1150 |
+------+-------+
2 rows in set (0.00 sec)
คำอธิบาย
ProductPrice * ProductWeightคำนวณค่าในแต่ละแถวก่อน (35×5=175, 100×4=400, 50×3=150, 500×2=1000)SUM(...)รวมค่าที่คำนวณได้ในแต่ละกลุ่ม Id- Id 100: 175 + 400 = 575 | Id 101: 150 + 1000 = 1150
วิธีนี้ใช้ได้กับการคำนวณมูลค่าสินค้าคงคลัง, ยอดขายรวม, หรือค่าใช้จ่ายทั้งหมด แค่เปลี่ยนคอลัมน์และตารางให้ตรงกับความต้องการ