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 | 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!