GROUP_CONCAT et son utilisation

GROUP_CONCAT est une fonction d'agrégation (comme COUNT, MAX, etc.) permettant de concaténer tous les enregistrements des groupes définis par la clause GROUP BY.
En d'autres termes, GROUP_CONCAT est à CONCAT ce que SUM est à l'opérateur +.
Exemple :
CREATE TABLE groupe utilisateur (
     ID_GROUPE INT AUTO_INCREMENT NOT NULL,
     LIBELLE_GROUPE VARCHAR(50),
     PRIMARY KEY (ID_GROUPE)
);
CREATE TABLE utilisateur (
     ID_USER INT AUTO_INCREMENT NOT NULL,
     NOM_USER VARCHAR(50) NOT NULL,
     ID_GROUPE INT NOT NULL,
     PRIMARY KEY (ID_USER),
     FOREIGN KEY (ID_GROUPE) REFERENCES groupe_utilisateur (ID_GROUPE)
);
INSERT INTO groupe_utilisateur (LIBELLE_GROUPE) VALUES
('utilisateurs'), ('administrateurs');
INSERT INTO utilisateur (NOM_USER, ID_GROUPE) VALUES
('bob', 1), ('toto', 1), ('bibi', 1), ('superuser', 2), ('directeur', 2);
Utilisation de la fonction GROUP_CONCAT (avec ses deux options SEPARATOR et ORDER BY) :
SELECT LIBELLE_GROUPE, GROUP_CONCAT(NOM_USER SEPARATOR ":" ORDER BY NOM_USER) AS LIST_USERS
FROM utilisateur
INNER JOIN groupe_utilisateur USING (ID_GROUPE)
GROUP BY (utilisateur.ID_GROUPE)
On obtient alors :

LIBELLE_GROUPE : utilisateurs     |   LIST_USERS   :  bibi:bob:toto  
LIBELLE_GROUPE : administrateurs    |   LIST_USERS   : directeur:superuser
GROUP_CONCAT est spécifique à MySQL.