เมื่อต้องการรวมค่าตัวเลข (เช่น คะแนน, ยอดขาย, จำนวน) ตามกลุ่ม (เช่น ตามคน, ตามสินค้า, ตามเดือน) ใช้คำสั่ง GROUP BY ร่วมกับฟังก์ชันรวม SUM()
ตัวอย่างการใช้งาน
สร้างตารางคะแนนนักเรียน:
mysql> CREATE TABLE DemoTable1443 (
-> StudentId INT,
-> StudentScore INT
-> );
เพิ่มข้อมูล (นักเรียนแต่ละคนมีหลายคะแนน):
mysql> INSERT INTO DemoTable1443 VALUES (100, 78); mysql> INSERT INTO DemoTable1443 VALUES (101, 89); mysql> INSERT INTO DemoTable1443 VALUES (100, 88); mysql> INSERT INTO DemoTable1443 VALUES (101, 97);
ดูข้อมูล:
mysql> SELECT * FROM DemoTable1443; +-----------+--------------+ | StudentId | StudentScore | +-----------+--------------+ | 100 | 78 | | 101 | 89 | | 100 | 88 | | 101 | 97 | +-----------+--------------+
รวมคะแนนตาม StudentId:
mysql> SELECT StudentId, SUM(StudentScore) FROM DemoTable1443
-> GROUP BY StudentId;
ผลลัพธ์:
+-----------+-------------------+ | StudentId | SUM(StudentScore) | +-----------+-------------------+ | 100 | 166 | | 101 | 186 | +-----------+-------------------+
ฟังก์ชันรวมที่ใช้ร่วมกับ GROUP BY
| ฟังก์ชัน | คำอธิบาย |
|---|---|
| SUM() | ผลรวม |
| COUNT() | จำนวนแถว |
| AVG() | ค่าเฉลี่ย |
| MIN() / MAX() | ค่าต่ำสุด/สูงสุด |
| GROUP_CONCAT() | รวมค่าข้อความเป็นสตริงเดียว |