Let's say we want to display the names of all unique not-null courses.
For each of these courses names
display names of all students enrolled in the course.
Separate the names of students using a comma.
In this case, we need to group the data by course
.
However instead of getting an aggregate data from rows grouped by course, we need to combine all names in the group.
SQL provides GROUP_CONCAT
, a combination clause over GROUP BY
, that solves the exact same problem.
The GROUP_CONCAT
function returns the combined data separated by a ,
by default.
If we want to use a different separator, the GROUP_CONCAT
function can take a second argument, to specify the separator.
Check the query below to return a similar result as above, but using a |
as a separator.