Maison > base de données > tutoriel mysql > Comment transposer des lignes en colonnes dans DB2 ?

Comment transposer des lignes en colonnes dans DB2 ?

Mary-Kate Olsen
Libérer: 2024-12-30 15:39:18
original
656 Les gens l'ont consulté

How to Transpose Rows into Columns in DB2?

Transposition de lignes en colonnes dans DB2

Lorsque vous travaillez avec des données dans une base de données, il peut être nécessaire de transposer des lignes, c'est-à-dire d'inverser les lignes et les colonnes. Cela peut être utile pour l'analyse des données, la création de rapports et à d'autres fins.

Si vous disposez d'une table DB2 avec des lignes que vous souhaitez transposer en colonnes, vous pouvez utiliser plusieurs méthodes. Une approche consiste à utiliser des sous-requêtes corrélées, qui peuvent être efficaces pour les petits ensembles de données.

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

Cette requête utilise des sous-requêtes corrélées pour trouver la valeur maximale de chaque élément de chaque ligne. La fonction MAX() est utilisée pour agréger les valeurs et l'instruction CASE est utilisée pour déterminer à quelle colonne attribuer la valeur.

Une autre méthode pour transposer des lignes en colonnes consiste à utiliser une combinaison d'agrégation et de pivot. fonctions. Cette approche peut être plus efficace pour les grands ensembles de données, car elle utilise une seule instruction SQL pour effectuer la transposition.

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 (
    SELECT ItemID, Item, Value
    FROM TableName
) AS t
GROUP BY ItemID
PIVOT (MAX(Value) FOR Item IN ('Meeting', 'Advise', 'NoAdvise'))
Copier après la connexion

Cette requête utilise la fonction PIVOT() pour transposer les données. La fonction PIVOT() prend deux arguments : la colonne sur laquelle pivoter (dans ce cas, Item) et la liste de valeurs à inclure dans les nouvelles colonnes (dans ce cas, Meeting, Advise et NoAdvise).

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