Maison >base de données >tutoriel mysql >Comment remodeler les données MySQL d'un format étroit à un format large à l'aide de SQL ?
Introduction
Les données se présentent souvent sous différents formats, et plus généralement, il faut le convertir d'un format à un autre. Une conversion courante consiste à passer du format étroit/haut au format large, où plusieurs colonnes du tableau étroit deviennent plusieurs lignes dans le tableau large. Cet article explique comment réaliser cette conversion dans MySQL.
Création de la structure de table large
Pour créer une table au format large, identifiez d'abord toutes les clés uniques de la table étroite. tableau. Ceci peut être réalisé en utilisant la requête suivante :
select distinct key from table;
Le résultat de cette requête fournira une liste de toutes les clés uniques dans la table étroite. Ces clés deviendront les noms de colonnes du tableau grand format. Par exemple, si les clés distinctes sont ['Président', 'Devise'], le tableau grand format aura la structure suivante :
country, President, Currency
Remplir les données du tableau large
Pour remplir les valeurs du tableau grand format, utilisez une instruction SELECT avec des fonctions d'agrégation telles que MAX() ou GROUP_CONCAT() :
SELECT country, MAX( IF( key='President', value, NULL ) ) AS President, MAX( IF( key='Currency', value, NULL ) ) AS Currency FROM table GROUP BY country;
Dans cet exemple, la fonction d'agrégation MAX() est utilisée pour récupérer la valeur maximale de chaque clé dans chaque pays. Cette requête produirait le résultat suivant :
country, President, Currency US, Obama, Dollar China, Hu, Yuan
Approche alternative : tableaux croisés ou tableaux croisés dynamiques
Une approche alternative pour créer un tableau au format large consiste à utiliser tableaux croisés ou tableaux croisés dynamiques. Ceci peut être réalisé à l'aide d'outils tels que l'opérateur PIVOT de MySQL, qui vous permet de spécifier les colonnes et les fonctions d'agrégation que vous souhaitez utiliser.
Conclusion
Remodeler les données à partir d'une base étroite au format large peut être facilement réalisé dans MySQL à l'aide de fonctions d'agrégation SQL ou de tableaux croisés/pivotants. Cette conversion est particulièrement utile lorsque vous travaillez avec des outils de visualisation de données tels que des tableaux et des graphiques.
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!