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

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

Barbara Streisand
リリース: 2024-12-20 14:18:14
オリジナル
139 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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