SQL Aggregate Concatenate
SQL Aggregate Concatenate provides you a concatenated record of the field based on the conditional operator WHERE clause.
Understand with Example
The Tutorial illustrate an example from SQL Aggregate Concatenate. To grasp this example, we create a table 'Stu_Table' using create table statement.
Create Table Stu_Table
create table Stu_Table(Stu_Id varchar(2), Stu_Name varchar(15), Stu_Class varchar(10),sub_id varchar(2),marks varchar(3)); |
Insert Data into Stu_Table
The insert into statement add the records or rows to the table 'Stu_Table'.
insert into Stu_Table values(1,'Komal',10,1,45); insert into Stu_Table values(2,'Ajay',10,1,56); insert into Stu_Table values(3,'Rakesh',10,1,67); insert into Stu_Table values(1,'Komal',10,2,47); insert into Stu_Table values(2,'Ajay',10,2,53); insert into Stu_Table values(3,'Rakesh',10,2,57); insert into Stu_Table values(1,'Komal',10,3,45); insert into Stu_Table values(2,'Ajay',10,3,56); insert into Stu_Table values(3,'Rakesh',10,3,67); insert into Stu_Table values(1,'Komal',10,4,65); insert into Stu_Table values(2,'Ajay',10,4,56); insert into Stu_Table values(3,'Rakesh',10,4,37); insert into Stu_Table values(1,'Komal',10,5,65); insert into Stu_Table values(2,'Ajay',10,5,46); insert into Stu_Table values(3,'Rakesh',10,5,63); |
Stu_Table
+--------+----------+-----------+--------+-------+ | Stu_Id | Stu_Name | Stu_Class | sub_id | marks | +--------+----------+-----------+--------+-------+ | 1 | Komal | 10 | 1 | 45 | | 2 | Ajay | 10 | 1 | 56 | | 3 | Rakesh | 10 | 1 | 67 | | 1 | Komal | 10 | 2 | 47 | | 2 | Ajay | 10 | 2 | 53 | | 3 | Rakesh | 10 | 2 | 57 | | 1 | Komal | 10 | 3 | 45 | | 2 | Ajay | 10 | 3 | 56 | | 3 | Rakesh | 10 | 3 | 67 | | 1 | Komal | 10 | 4 | 65 | | 2 | Ajay | 10 | 4 | 56 | | 3 | Rakesh | 10 | 4 | 37 | | 1 | Komal | 10 | 5 | 65 | | 2 | Ajay | 10 | 5 | 46 | | 3 | Rakesh | 10 | 5 | 63 | +--------+----------+-----------+--------+-------+ |
Query
The Query return you a records and concatenated values from the field 'marks' from table 'Stu_table'. The group by return the group records from a table 'Stu_Table'.
select stu_id,stu_name,GROUP_CONCAT(marks) as marks from stu_table group by stu_id; |
Result
+--------+----------+----------------+ | stu_id | stu_name | marks | +--------+----------+----------------+ | 1 | Komal | 45,65,47,65,45 | | 2 | Ajay | 46,56,56,53,56 | | 3 | Rakesh | 67,57,37,67,63 | +--------+----------+----------------+ |