Maison > base de données > tutoriel mysql > MySQL peut-il transformer des données au format long en format large sans scripts externes ?

MySQL peut-il transformer des données au format long en format large sans scripts externes ?

Susan Sarandon
Libérer: 2024-12-25 10:09:15
original
364 Les gens l'ont consulté

Can MySQL Transform Long-Format Data to Wide-Format Without External Scripts?

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

  1. 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;
    Copier après la connexion
  2. Créer le tableau large : Créez un nouveau tableau avec les colonnes requises. Les noms de colonnes doivent correspondre aux clés. Par exemple, si vous disposez des clés Président et Devise, votre tableau doit contenir des colonnes nommées Président et Devise.

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

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!

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