DISTINCT : sert comme d'habitude à éliminer les doublons.
col1 : est le nom de la colonne dont les valeurs doivent être concaténées. C'est le seul argument obligatoire.
col2,… : sont les éventuelles autres colonnes (ou chaînes de caractères) à concaténer.
ORDER BY : permet de déterminer dans quel ordre les valeurs seront concaténées.
SEPARATOR : permet de spécifier une chaîne de caractères à utiliser pour séparer les différentes valeurs. Par défaut, c'est
une virgule.
Exemples
Code : SQL
-- --------------------------------------- CONCATENATION DE PLUSIEURS COLONNES --- -------------------------------------SELECT SUM(Race.prix), GROUP_CONCAT(Race.nom, Espece.nom_courant)
FROM Race
INNER JOIN Espece ON Espece.id = Race.espece_id;
-- ---------------------------------------------------- CONCATENATION DE PLUSIEURS COLONNES EN PLUS JOLI --- --------------------------------------------------SELECT SUM(Race.prix), GROUP_CONCAT(Race.nom, ' (',
Espece.nom_courant, ')')
FROM Race
INNER JOIN Espece ON Espece.id = Race.espece_id;
-- ---------------------------- ELIMINATION DES DOUBLONS --- --------------------------SELECT SUM(Espece.prix), GROUP_CONCAT(DISTINCT Espece.nom_courant) -
- Essayez sans le DISTINCT pour voir
FROM Espece
INNER JOIN Race ON Race.espece_id = Espece.id;
-- --------------------------- UTILISATION DE ORDER BY --- -------------------------SELECT SUM(Race.prix), GROUP_CONCAT(Race.nom, ' (',
Espece.nom_courant, ')' ORDER BY Race.nom DESC)
FROM Race
INNER JOIN Espece ON Espece.id = Race.espece_id;
-- ----------------------------- CHANGEMENT DE SEPARATEUR --- ---------------------------SELECT SUM(Race.prix), GROUP_CONCAT(Race.nom, ' (',
Espece.nom_courant, ')' SEPARATOR ' - ')
FROM Race
INNER JOIN Espece ON Espece.id = Race.espece_id;
En résumé
La plupart des fonctions d'agrégation permettent de faire des statistiques sur les données : nombre de lignes, moyenne
d'une colonne,…
COUNT(*) compte toutes les lignes quel que soit leur contenu, tandis que COUNT(colonne_x) compte les lignes
pour lesquelles colonne_x n'est pas NULL.
GROUP_CONCAT(colonne_x) permet de concaténer les valeurs de colonne_x dont les lignes ont été groupées par
une autre fonction d'agrégation.
Partie 3 : Fonctions : nombres, chaînes et agrégats
175/414
www.openclassrooms.com
Précédent

- 175/413

Suivant