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

วิธีคำนวณค่าจากหลายคอลัมน์ใน MySQL

การคำนวณผลรวมจากการคูณคอลัมน์ด้วย 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

วิธีนี้ใช้ได้กับการคำนวณมูลค่าสินค้าคงคลัง, ยอดขายรวม, หรือค่าใช้จ่ายทั้งหมด แค่เปลี่ยนคอลัมน์และตารางให้ตรงกับความต้องการ