ホームページ >データベース >mysql チュートリアル >MySQL でデータをロング形式からワイド形式に効率的に再形成するにはどうすればよいですか?
概要:
ロング (トール) 形式からのデータの再構成データを操作する場合、ワイド形式への変換が必要になる場合があります。 MySQL には、外部スクリプト言語に依存せずにこの操作を実行できる機能が用意されています。
ワイド フォーマット テーブルの作成:
最初のステップ長い形式で存在するすべての個別のキーのリストを取得することですtable:
SELECT DISTINCT key FROM table;
取得したキーを使用して、目的のワイド フォーマット構造を持つ新しいテーブルを作成します:
CREATE TABLE wide_table ( country VARCHAR(255), key1 VARCHAR(255), key2 VARCHAR(255), ..., keyN VARCHAR(255) );
表への記入値:
最後に、クロス集計クエリを使用してワイド形式のテーブルにデータを挿入します:
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:
以上がMySQL でデータをロング形式からワイド形式に効率的に再形成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。