Maison >base de données >tutoriel mysql >Comment puis-je trier les valeurs concaténées dans la fonction GROUP_CONCAT de SQL ?

Comment puis-je trier les valeurs concaténées dans la fonction GROUP_CONCAT de SQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-02 03:47:10731parcourir

How Can I Order Concatenated Values within SQL's GROUP_CONCAT Function?

Fonctions GROUP_CONCAT améliorées avec ORDER BY

En SQL, la fonction GROUP_CONCAT est utilisée pour concaténer les valeurs d'une colonne pour un groupe particulier de lignes . Cependant, l'ordre des valeurs concaténées est généralement imprévisible.

Le défi :

Considérez le tableau suivant :

client_id views percentage
1 6 20
1 4 55
1 9 56
1 2 67
1 7 80
1 5 66
1 3 33
1 8 34
1 1 52

En effectuant une Opération GROUP_CONCAT, les données sont consolidé :

SELECT li.client_id, group_concat(li.views) AS views, group_concat(li.percentage) FROM li GROUP BY client_id;

Sortie :

client_id views percentage
6,4,9,2,7,5,3,8,1 20,55,56,67,80,66,33,34,52

Cependant, l'ordre des vues n'est pas celui requis. Pour organiser les valeurs concaténées par ordre croissant, une clause ORDER BY peut être incorporée dans la fonction GROUP_CONCAT :

SELECT li.client_id, group_concat(li.views ORDER BY li.views) AS views, group_concat(li.percentage ORDER BY li.views) FROM li GROUP BY client_id

La requête modifiée renvoie le résultat suivant :

client_id views percentage
1 1,2,3,4,5,6,7,8,9 52,67,33,55,66,20,80,34,56

Cette modification garantit que la colonne des vues est classée par ordre croissant au sein de chaque groupe de clients.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn