การหาผลรวม (Summation) ค่าตัวเลขในคอลัมน์ด้วย SUM()
ฟังก์ชัน SUM() เป็น Aggregate Function รวมค่าของคอลัมน์ที่ระบุ (ข้าม NULL อัตโนมัติ)
Syntax
SELECT SUM(column_name) AS alias_name FROM table_name [WHERE condition];
ตัวอย่างการใช้งาน
สร้างตารางราคาสินค้า:
mysql> CREATE TABLE DemoTable739 (Price INT); Query OK, 0 rows affected (0.65 sec) mysql> INSERT INTO DemoTable739 VALUES (100), (50), (1200), (500), (800); Query OK, 5 rows affected
ข้อมูลทั้งหมด:
mysql> SELECT * FROM DemoTable739;
+-------+ | Price | +-------+ | 100 | | 50 | | 1200 | | 500 | | 800 | +-------+ 5 rows in set (0.00 sec)
หาผลรวมราคาทั้งหมด:
mysql> SELECT SUM(Price) AS Total_Price FROM DemoTable739;
+-------------+ | Total_Price | +-------------+ | 2650 | +-------------+ 1 row in set (0.00 sec)
การใช้งานขั้นสูง
- รวมกับ GROUP BY:
SELECT category, SUM(price) FROM products GROUP BY category;
- เงื่อนไขใน SUM (Conditional Sum):
SELECT SUM(CASE WHEN price > 500 THEN price ELSE 0 END) AS high_value_sum, SUM(CASE WHEN price <= 500 THEN price ELSE 0 END) AS low_value_sum FROM DemoTable739; - SUM DISTINCT:
SUM(DISTINCT price)- รวมค่าที่ไม่ซ้ำกัน - Window Function (MySQL 8.0+):
SELECT Price, SUM(Price) OVER () AS total, SUM(Price) OVER (ORDER BY Price) AS running_total FROM DemoTable739;
ฟังก์ชัน Aggregate อื่นๆ
| ฟังก์ชัน | คำอธิบาย |
|---|---|
| COUNT(*) | นับจำนวนแถว |
| AVG() | ค่าเฉลี่ย |
| MIN() | ค่าต่ำสุด |
| MAX() | ค่าสูงสุด |
| STD() | Standard Deviation |
| VARIANCE() | Variance |