Maison >base de données >tutoriel mysql >Comment transposer des 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!