Remodelage des données du format long au format large dans MySQL
Dans MySQL, les données sont souvent stockées dans un format long ou grand, où plusieurs attributs sont stockés dans des lignes distinctes pour la même entité. Cependant, à des fins d'analyse et de reporting, il peut être plus pratique d'avoir les données dans un format large, où chaque ligne représente une entité et chaque colonne représente un attribut.
MySQL peut-il être utilisé pour convertir des données au format long au grand format sans script externe ? Oui, c'est possible en utilisant les puissantes capacités de tableau croisé dynamique de MySQL.
Création du tableau large
Récupérer la liste des clés : Récupérer toutes les clés distinctes présentes dans la table au format long à l'aide d'une requête comme :
SELECT DISTINCT key FROM table;
Remplir les valeurs du tableau
Utilisez un requête croisée pour renseigner les valeurs dans le tableau large. La requête suivante le démontre :
SELECT country, MAX(IF(key='President', value, NULL)) AS President, MAX(IF(key='Currency', value, NULL)) AS Currency, ... -- Add other key-value pairs as needed FROM table GROUP BY country;
Cette requête vérifie chaque ligne de la table longue et renvoie uniquement la dernière valeur pour chaque paire clé-valeur pour ce pays. La fonction MAX avec la condition IF garantit que la valeur la plus récente est conservée.
Par exemple, les données d'entrée fournies dans la question seraient converties dans le format large suivant format :
Entrée :
country | attrName | attrValue | key |
---|---|---|---|
US | President | Obama | 2 |
US | Currency | Dollar | 3 |
China | President | Hu | 4 |
China | Currency | Yuan | 5 |
Sortie :
country | President | Currency |
---|---|---|
US | Obama | Dollar |
China | Hu | Yuan |
Conclusion
À l'aide des tableaux croisés dynamiques MySQL, il est simple de remodeler les données du format long au format large, ce qui les rend plus adapté à l’analyse et au reporting. Cette méthode est efficace et peut être appliquée à des tables avec n'importe quel nombre d'attributs.
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!