Maison >base de données >tutoriel mysql >Comment remodeler des données volumineuses en données larges dans MySQL ?
Remodeler les données dans MySQL : de grand à large
Lorsque vous travaillez avec des données dans une base de données, il est souvent nécessaire de remodeler les données à partir d'un format long et haut à un format plus large. Cette conversion facilite l'analyse et la visualisation des données de manière plus compacte et significative.
Exemple :
Considérons un tableau avec des données dans un format long :
| country | key | value | |---|---|---| | USA | President | Obama | | USA | Currency | Dollar | | China | President | Hu | | China | Currency | Yuan |
Dans ce format, chaque ligne représente un seul attribut pour un pays. Pour convertir ces données dans un format large, nous allons créer un nouveau tableau avec des colonnes pour chaque clé unique et les remplir avec les valeurs correspondantes pour chaque pays :
| country | President | Currency | |---|---|---| | USA | Obama | Dollar | | China | Hu | Yuan |
Conversion SQL :
MySQL offre la possibilité de remodeler les données à l'aide de tableaux croisés ou de tableaux croisés dynamiques. Voici un exemple de requête qui générera la table grand format souhaitée :
SELECT country, MAX( IF( key='President', value, NULL ) ) AS President, MAX( IF( key='Currency', value, NULL ) ) AS Currency FROM table GROUP BY country;
Cette requête utilise la fonction d'agrégation MAX() pour trouver la valeur maximale (c'est-à-dire la valeur associée à chaque clé unique) pour chaque pays.
Étapes :
Conclusion :
Utiliser des tableaux croisés ou tableaux croisés dynamiques dans MySQL, il est possible de remodeler facilement les données d'un format long et haut vers un format large. Il s'agit d'une technique précieuse pour l'analyse et la visualisation des données, et elle peut être facilement implémentée dans MySQL à l'aide du code fourni.
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!