String Aggregation ด้วย GROUP_CONCAT()
GROUP_CONCAT() รวมค่าจากหลายแถวในกลุ่มเดียวกันเป็นสตริงเดียว คั่นด้วยคอมมา (หรือตัวแบ่งที่กำหนด)
ตัวอย่าง: รวมนักศึกษาตามวิชา
CREATE TABLE DemoTable2024 (
SubjectName VARCHAR(20),
StudentName VARCHAR(20)
);
INSERT INTO DemoTable2024 VALUES
('MySQL', 'Chris'), ('MySQL', 'David'),
('MongoDB', 'Bob'), ('Java', 'Sam'),
('MongoDB', 'Mike');
SELECT SubjectName, GROUP_CONCAT(StudentName)
FROM DemoTable2024
GROUP BY SubjectName;
ผลลัพธ์
| SubjectName | Students |
|---|---|
| Java | Sam |
| MongoDB | Bob,Mike |
| MySQL | Chris,David |
ตัวเลือกเพิ่มเติม:
GROUP_CONCAT(DISTINCT StudentName)- ไม่ซ้ำGROUP_CONCAT(StudentName ORDER BY StudentName SEPARATOR '; ')- เรียงลำดับและเปลี่ยนตัวแบ่งSET SESSION group_concat_max_len = 10000;- เพิ่มความยาวสูงสุด (default 1024)