Cependant, PostgreSQL ne supporte pas nativement la fonction group_concat() contrairement à MySQL. Par conséquent, ce tutoriel explore comment nous pouvons obtenir une fonctionnalité similaire en utilisant la fonction string_agg().
Fonction PostgreSQL String_Agg
La fonction string_agg dans PostgreSQL nous permet de concaténer les valeurs de plusieurs lignes en une seule chaîne et est séparée par le paramètre spécifié.
L'utilisation de la syntaxe de la fonction est illustrée ci-dessous :
SELECT string_agg(nom_colonne, délimiteur)
FROM nom_table
conditions OÙ
GROUP BY grouping_columns ;
La syntaxe suivante est exprimée comme suit :
nom de colonne – Il précise le nom de la colonne dont on souhaite concaténer la colonne.
délimiteur – Il définit le caractère de séparation utilisé lors de la jonction des valeurs d'entrée.
nom de la table – La table cible qui contient les données.
grouping_columns – Il spécifie les colonnes utilisées pour regrouper les données spécifiées.
Exemple de fonction PostgreSQL String_Agg
Prenons un exemple plus pratique pour illustrer le fonctionnement de la fonction. Supposons que nous ayons une table contenant les informations sur les étudiants. Le tableau contient trois colonnes : id, name et subject.
Si nous souhaitons concaténer les noms des étudiants qui se sont inscrits dans la même matière, nous pouvons utiliser la fonction string_agg.
SELECT sujet, string_agg ( nom, ',' ) Étudiants ASDES étudiants
GROUP BY sujet ;
Une fois que nous avons exécuté la requête donnée, elle devrait renvoyer un ensemble de résultats avec deux colonnes principales : le sujet et les étudiants. Les étudiants contiennent les noms concaténés des étudiants pour chaque matière et sont séparés par une virgule.
NOTE : La fonction string_agg trie les valeurs concaténées par défaut. Vous pouvez ajouter une clause ORDER BY dans la fonction string_agg pour conserver l'ordre d'origine.
Voilà! Une méthode simple et efficace pour obtenir une fonctionnalité similaire fournie par la fonction group_concat() dans PostgreSQL.
Conclusion
Dans ce tutoriel bref mais efficace, nous avons appris à utiliser la fonction string_agg dans PostgreSQL pour obtenir une fonctionnalité similaire fournie par la fonction group_concat() dans MySQL.