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
Mary-Kate Olsenoriginal
2024-12-30 15:39:18656parcourir

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

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'))

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!

Déclaration:
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