ホームページ >データベース >mysql チュートリアル >MySQL は外部スクリプトを使用せずにロングフォーマットのデータをワイドフォーマットに変換できますか?
MySQL でのロング形式からワイド形式へのデータの再形成
MySQL では、データは多くの場合、ロング形式またはトール形式で保存され、複数の属性が存在します。同じエンティティの別の行に格納されます。ただし、分析やレポートの目的では、各行がエンティティを表し、各列が属性を表すワイド形式のデータを使用する方が便利です。
MySQL を使用してロング形式のデータを変換できますか?外部スクリプトを使用せずにワイドフォーマットに変換しますか?はい、MySQL の強力なピボット テーブル機能を使用することが可能です。
ワイド テーブルの作成
フェッチ キー リスト: クエリを使用して、長い形式のテーブルに存在するすべての個別のキーを取得する例:
SELECT DISTINCT key FROM table;
テーブル値の入力
幅の広いテーブルに値を入力するためのクロス集計クエリ。次のクエリはこれを示しています。
SELECT country, MAX(IF(key='President', value, NULL)) AS President, MAX(IF(key='Currency', value, NULL)) AS Currency, ... -- Add other key-value pairs as needed FROM table GROUP BY country;
このクエリは、長いテーブルの各行をチェックし、その国の各キーと値のペアの最新値のみを返します。 IF 条件を備えた MAX 関数により、最新の値が確実に保持されます。
たとえば、質問で提供された入力データは次のワイド形式に変換されます。形式:
入力:
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 |
結論
MySQL ピボット テーブルを使用すると、データを長い形式から広い形式に簡単に再形成して、分析やレポートに適したものにします。この方法は効率的であり、任意の数の属性を持つテーブルに適用できます。
以上がMySQL は外部スクリプトを使用せずにロングフォーマットのデータをワイドフォーマットに変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。