Maison >base de données >tutoriel mysql >Comment effectuer une transformation ligne en colonne (pivot) dans MySQL avec des données dynamiques ?

Comment effectuer une transformation ligne en colonne (pivot) dans MySQL avec des données dynamiques ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 11:51:10938parcourir

How to Perform Row to Column Transformation (Pivot) in MySQL with Dynamic Data?

Transformation de ligne en colonne dans MySQL : tableau croisé dynamique pour les données dynamiques

Les tableaux croisés dynamiques sont un moyen pratique de transformer des données orientées lignes. format vers un format orienté colonnes, permettant une analyse et un reporting plus faciles. Dans MySQL, cette transformation peut être réalisée grâce à une technique spécialisée.

Considérez les exemples de données suivants :

ID Type Email Degignation
1000000000 202 [email protected] Entrepreneur
1000000000 234 [email protected] Engineering,Development
1000000000 239 [email protected] CTO

Pour faire pivoter ces données, nous utilisons la requête suivante :

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

Cette requête utilise l'expression CASE pour créer dynamiquement des colonnes pour chaque valeur de type distincte. La fonction MAX est utilisée pour agréger les valeurs de Dégignation pour chaque combinaison ID et Email.

Il est important de noter que pour que cette requête fonctionne efficacement, vous devez connaître au préalable toutes les valeurs de Type possibles. MySQL n'autorise pas l'ajout dynamique de colonnes basé sur les données découvertes lors de l'exécution ; Les définitions de colonnes doivent être statiques lors de la préparation de la requête.

Cette technique vous permet de transformer les données orientées lignes dans un format orienté colonnes, facilitant ainsi les tâches d'analyse et de reporting en fournissant une présentation des données plus intuitive.

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