ホームページ >データベース >mysql チュートリアル >SQL を使用して MySQL データをナロー形式からワイド形式に再形成するにはどうすればよいですか?

SQL を使用して MySQL データをナロー形式からワイド形式に再形成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-20 14:18:14181ブラウズ

How to Reshape MySQL Data from Narrow to Wide Format Using SQL?

MySQL データをナロー形式からワイド形式に再構成する

はじめに

データは多くの場合、さまざまな形式で提供されます。ある形式から別の形式に変換する必要があります。一般的な変換の 1 つは、ナロー/トール フォーマットからワイド フォーマットへの変換で、ナロー テーブルの複数の列がワイド テーブルの複数の行になります。この記事では、MySQL でこの変換を実現する方法について説明します。

ワイド テーブル構造の作成

ワイド フォーマット テーブルを作成するには、まずナロー テーブル構造からすべての一意のキーを識別します。テーブル。これは、次のクエリを使用して実現できます。

select distinct key from table;

このクエリの結果は、狭いテーブル内のすべての一意のキーのリストを提供します。これらのキーは、ワイド フォーマット テーブルの列名になります。たとえば、個別のキーが ['President', 'Currency'] の場合、ワイド フォーマット テーブルは次の構造になります:

country, President, Currency

ワイド テーブル データの作成

ワイド フォーマット テーブルの値を入力するには、MAX() や MAX() などの集計関数を含む SELECT ステートメントを使用します。 GROUP_CONCAT():

SELECT country, 
       MAX( IF( key='President', value, NULL ) ) AS President,
       MAX( IF( key='Currency', value, NULL ) ) AS Currency
FROM table 
GROUP BY country;

この例では、MAX() 集計関数を使用して、各国内の各キーの最大値を取得します。このクエリは次の結果を生成します:

country, President, Currency
US, Obama, Dollar
China, Hu, Yuan

代替アプローチ: クロスタブまたはピボット テーブル

ワイド フォーマット テーブルを作成する代替アプローチは、次のとおりです。クロス集計またはピボット テーブル。これは、MySQL の PIVOT 演算子などのツールを使用して実現できます。これにより、使用する列や集計関数を指定できます。

結論

狭いデータからのデータの再構成MySQL では、SQL 集計関数またはクロス集計/ピボット テーブルを使用して、ワイド フォーマットに簡単に変換できます。この変換は、チャートやグラフなどのデータ視覚化ツールを使用する場合に特に便利です。

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

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