ホームページ >データベース >mysql チュートリアル >MySQL でデータをロング形式からワイド形式に効率的に再形成するにはどうすればよいですか?

MySQL でデータをロング形式からワイド形式に効率的に再形成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-29 01:40:10557ブラウズ

How to Efficiently Reshape Data from Long to Wide Format in MySQL?

MySQL でのロング形式からワイド形式へのデータの再構成

概要:

ロング (トール) 形式からのデータの再構成データを操作する場合、ワイド形式への変換が必要になる場合があります。 MySQL には、外部スクリプト言語に依存せずにこの操作を実行できる機能が用意されています。

ワイド フォーマット テーブルの作成:

  1. 最初のステップ長い形式で存在するすべての個別のキーのリストを取得することですtable:

    SELECT DISTINCT key FROM table;
  2. 取得したキーを使用して、目的のワイド フォーマット構造を持つ新しいテーブルを作成します:

    CREATE TABLE wide_table (
        country VARCHAR(255),
        key1 VARCHAR(255),
        key2 VARCHAR(255),
        ...,
        keyN VARCHAR(255)
    );

表への記入値:

  1. 最後に、クロス集計クエリを使用してワイド形式のテーブルにデータを挿入します:

    INSERT INTO wide_table (
        country,
        key1,
        key2,
        ...,
        keyN
    )
    SELECT
        country,
        MAX(IF(key = 'key1', value, NULL)) AS key1,
        MAX(IF(key = 'key2', value, NULL)) AS key2,
        ...,
        MAX(IF(key = 'keyN', value, NULL)) AS keyN
    FROM table
    GROUP BY country;

例:

ロングフォーマット入力を考慮してくださいtable:

country attrName attrValue key
US President Obama 2
US Currency Dollar 3
China President Hu 4
China Currency Yuan 5

上記の手順を使用して、データをワイド フォーマットに再形成できます:

ワイド フォーマット出力:

country President Currency
US Obama Dollar
China Hu Yuan

使用の利点SQL:

  • 効率: SQL クエリはデータベース操作用に最適化され、処理時間を最小限に抑えます。
  • 宣言: SQL では次のことが可能です。必要な変換を簡潔かつ読みやすい形で表現できるようにする
  • 移植性: SQL クエリはさまざまな MySQL データベース間で実行でき、変更を加えることなく互換性が確保されます。
  • 保守性: SQL クエリが一度実行されると、開発された後は、必要に応じて簡単に保守および変更できます。

以上がMySQL でデータをロング形式からワイド形式に効率的に再形成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。