Maison > base de données > tutoriel mysql > Comment remodeler les données MySQL d'un format étroit à un format large à l'aide de SQL ?

Comment remodeler les données MySQL d'un format étroit à un format large à l'aide de SQL ?

Barbara Streisand
Libérer: 2024-12-20 14:18:14
original
134 Les gens l'ont consulté

How to Reshape MySQL Data from Narrow to Wide Format Using SQL?

Remodeler les données MySQL d'un format étroit à un format large

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;
Copier après la connexion

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
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal