Transposition de la structure de données avec pivotement dans DB2
La tâche nécessite de transposer des lignes en colonnes dans une table DB2, en transformant les données de la structure suivante :
ItemID Item Value --------------------- 1 Meeting Now 1 Advise Yes 1 NoAdvise No 2 Meeting Never 2 Advise No 2 NoAdvise Null 2 Combine Yes
dans le souhaité structure :
ItemID Meeting Advise NoAdvise --------------------------------------- 1 Now Yes No 2 Never No Null
Pour réaliser cette transformation, vous pouvez utiliser une requête SQL qui utilise l'opérateur PIVOT, qui permet la transposition de lignes en colonnes en fonction d'un champ de catégorisation spécifié. Voici un exemple de requête qui peut être utilisée dans DB2 LUW :
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
Dans cette requête, l'opérateur PIVOT n'est pas explicitement utilisé, mais il est obtenu implicitement grâce à l'utilisation de l'instruction CASE à l'intérieur du MAX () fonction d'agrégation. L'instruction CASE permet de catégoriser les lignes et de renvoyer la valeur maximale pour chaque catégorie. La fonction d'agrégation MAX() garantit ensuite que la valeur maximale est renvoyée pour chaque catégorie.
Notez que la colonne "Combiner" n'est pas incluse dans le résultat transposé conformément à l'exigence. Les données résultantes seront transposées en colonnes comme vous le souhaitez.
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!