Maison >base de données >tutoriel mysql >Comment puis-je combiner plusieurs lignes de données en une seule ligne à l'aide de la clause GROUP BY de SQL ?
Utilisez GROUP BY pour fusionner plusieurs lignes de données en une seule ligne
Lors du traitement des données, vous pouvez rencontrer des tableaux dans lesquels chaque ligne représente une entité unique et certaines colonnes doivent être consolidées entre ces entités. Cela se produit lorsque vous devez joindre plusieurs lignes de résultats pour une colonne spécifique en une seule ligne.
Supposons qu'il existe un tableau appelé "ActorsInfo" avec deux colonnes : "Film" et "Acteur". Chaque ligne représente une combinaison de films et de leurs acteurs associés. Votre objectif est de transformer ces données en un nouveau tableau contenant une colonne "Film" et une colonne "ActorList" contenant une liste de tous les acteurs de chaque film, séparés par des virgules.
Pour cela, la clause GROUP BY de SQL est utile. GROUP BY vous permet de regrouper des lignes en fonction des valeurs d'une ou plusieurs colonnes, puis d'appliquer des fonctions d'agrégation pour calculer des informations récapitulatives au sein de chaque groupe.
La clé ici est la fonction d'agrégation string_agg(). Il concatène les valeurs des colonnes spécifiées, séparées par un délimiteur de votre choix. Dans ce cas, la syntaxe est :
<code class="language-sql">SELECT Movie, string_agg(Actor, ', ') AS ActorList FROM ActorsInfo GROUP BY Movie;</code>
Regroupez les lignes par titre de film en spécifiant « Film » dans les clauses SELECT et GROUP BY, et calculez la colonne ActorList en concaténant les valeurs Actor séparées par des virgules.
Le résultat est un nouveau tableau où chaque ligne représente un film unique et la colonne "ActorList" contient la liste complète de tous les acteurs impliqués dans ce film.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!