Maison > base de données > tutoriel mysql > Comment faire pivoter des lignes en colonnes dans DB2 à l'aide de GROUP BY ?

Comment faire pivoter des lignes en colonnes dans DB2 à l'aide de GROUP BY ?

Mary-Kate Olsen
Libérer: 2025-01-05 10:32:41
original
716 Les gens l'ont consulté

How to Pivot Rows into Columns in DB2 Using GROUP BY?

Pivot dans DB2

Cette question tourne autour de la transposition de lignes en colonnes dans une table DB2. Les données fournies sont structurées avec les colonnes ItemID, Item et Value. L'objectif est de convertir ces données dans un format transposé, où les valeurs de Meeting, Advise et NoAdvise sont disposées sous forme de colonnes, l'ItemID servant d'identifiant de ligne.

Une approche pour exécuter ce pivot consiste à utilisez une clause GROUP BY avec plusieurs expressions MAX(). En utilisant MAX() et en spécifiant les critères pour chaque type d'élément dans l'instruction CASE, les valeurs correspondantes peuvent être récupérées. Par exemple :

SELECT 
  ItemID,
  MAX(CASE WHEN Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM table_name
GROUP BY ItemID
Copier après la connexion

Cette requête génère le format transposé souhaité, où ItemID sert de clé primaire et Meeting, Advise et NoAdvise deviennent les en-têtes de colonne. La clause GROUP BY garantit que les données sont regroupées par ItemID, fournissant une ligne distincte pour chaque élément.

Alternativement, le même résultat peut être obtenu en utilisant plusieurs sous-requêtes corrélées, comme le suggère la réponse actuellement acceptée dans ce forum. . Cependant, il convient de noter que l'approche par sous-requête peut rencontrer des problèmes de performances par rapport à la solution GROUP BY plus efficace, en particulier avec des ensembles de données plus volumineux.

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