Maison > base de données > tutoriel mysql > Comment Tablefunc peut-il gérer le pivotement de plusieurs variables pour éviter la perte de données ?

Comment Tablefunc peut-il gérer le pivotement de plusieurs variables pour éviter la perte de données ?

Barbara Streisand
Libérer: 2025-01-14 10:36:42
original
919 Les gens l'ont consulté

How Can Tablefunc Handle Multiple-Variable Pivoting to Avoid Data Loss?

Utilisez tablefunc pour le pivotement multi-colonnes

Question :

Comment utiliser tablefunc pour pivoter sur plusieurs variables au lieu de simplement les noms de lignes ?

Contexte :

Les ensembles de données contenant des milliards de lignes doivent être pivotés dans un format large afin de comparer efficacement plusieurs mesures prises sur de nombreuses entités. Ces mesures varient considérablement, ce qui nécessite une conversion fréquente des données dans un format large.

Question :

L'approche tablefunc standard suppose que les colonnes d'attributs (alias colonnes "supplémentaires") sont cohérentes pour chaque nom de ligne. Si plusieurs valeurs existent pour une colonne d'attribut dans un nom de ligne, seule la première valeur est signalée, ce qui entraîne des données incomplètes dans la sortie du pivot.

Solution :

Pour surmonter cette limitation, vous devez réorganiser les colonnes de requête et placer la colonne d'attribut avant la colonne de nom de ligne. Cela garantit que les valeurs d'attribut sont renseignées à partir de la première ligne de chaque partition de nom de ligne, capturant ainsi toutes les différentes valeurs d'attribut pour ce nom de ligne.

Code :

<code class="language-sql">SELECT *
FROM crosstab(
   'SELECT entity, timeof, status, ct
    FROM   t4
    ORDER  BY entity'
 , 'VALUES (1), (0)'
   ) AS ct (
      "Attribute" character
    , "Section" timestamp
    , "status_1" int
    , "status_0" int
      );</code>
Copier après la connexion

Résumé :

En inversant l'ordre des deux premières colonnes (colonnes d'attributs avant les colonnes de nom de ligne), tablefunc peut pivoter efficacement sur plusieurs variables, fournissant une sortie pivot complète. Cette approche fonctionne bien lorsque l'ensemble de données contient un nombre différent de valeurs d'attribut par nom de ligne.

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