ホームページ > データベース > mysql チュートリアル > SQL を使用して複数の列 (org とposition) を持つデータをより幅広い形式にピボットする方法

SQL を使用して複数の列 (org とposition) を持つデータをより幅広い形式にピボットする方法

Patricia Arquette
リリース: 2025-01-03 00:53:41
オリジナル
613 人が閲覧しました

How to Pivot Data with Multiple Columns (org and position) into a Wider Format Using SQL?

複数の列を使用したデータのピボット

ピボット クエリは、データを縦長の狭い形式から幅広の表形式に再配置するために不可欠です。この特定のケースでは、org とposition という 2 つの列を含むピボット形式で表されたデータを、言語 (en、fi、sv) ごとに個別の列を含むより広い形式にピボットする必要があります。

Asおっしゃるとおり、CONNECT BY コマンドを使用したピボット クエリが役立つ可能性があります。ただし、PIVOT 演算子を使用したより簡単なアプローチは次のとおりです。

SELECT  user_id,
        MAX(CASE WHEN lang = 'en' THEN org END) AS org_en,
        MAX(CASE WHEN lang = 'en' THEN position END) AS position_en,
        MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi,
        MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi,
        MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv,
        MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv
FROM    source
GROUP BY user_id
ログイン後にコピー

MAX() 関数を使用して、各ユーザー ID と言語の組み合わせに関連付けられた最新の値を取得します。あるいは、特定の要件に応じて、SUM() などの集計関数を使用することもできます。

このクエリは目的の出力を生成します。

user_id org_fi position_fi org_en position_en org_sv position_sv
1001 USD Bossa USE Boss NULL NULL
1002 NULL NULL NULL NULL GWR Dim
1003 GGA DCS NULL NULL GCA DDD

MAX() 関数を調整することを忘れないでください。実際のデータと要件に基づく CASE 式。このアプローチでは、複数の列を使用してデータを効果的にピボットすることができ、分析やプレゼンテーションのニーズに適した形式でデータを柔軟に表現できるようになります。

以上がSQL を使用して複数の列 (org とposition) を持つデータをより幅広い形式にピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート