Maison >base de données >tutoriel mysql >Comment puis-je trier les valeurs concaténées dans la fonction GROUP_CONCAT de SQL ?
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!