DB2 でのピボットを使用したデータ構造の転置
このタスクでは、DB2 テーブル内の行を列に転置し、次の構造からデータを変換する必要があります。 :
ItemID Item Value --------------------- 1 Meeting Now 1 Advise Yes 1 NoAdvise No 2 Meeting Never 2 Advise No 2 NoAdvise Null 2 Combine Yes
を希望の値に入力します構造:
ItemID Meeting Advise NoAdvise --------------------------------------- 1 Now Yes No 2 Never No Null
この変換を実現するには、PIVOT 演算子を使用する SQL クエリを使用できます。これにより、指定された分類フィールドに基づいて行を列に転置できます。 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
このクエリでは、PIVOT 演算子は明示的に使用されていませんが、MAX 内で CASE ステートメントを使用することによって暗黙的に実現されています。 () 集計関数。 CASE ステートメントは、行を分類し、各カテゴリの最大値を返す手段として機能します。 MAX() 集計関数は、各カテゴリに対して最大値が返されることを保証します。
要件に従って、転置された結果には「Combine」列が含まれないことに注意してください。結果のデータは、必要に応じて列に転置されます。
以上がPIVOT (暗黙的) を使用して DB2 で行を列に転置する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。