mysqlテーブルにlong/tall形式(以下で説明)のデータがあり、それをワイド形式に変換したいと思います。SQLだけを使用してこれを行うことはできますか?
例を挙げて説明するのが最も簡単です。Mか国、Nキー(たとえば、キーは収入、政治指導者、地域、大陸など)の(国、キー、値)に関する情報があるとします。
Long format has 3 columns: country, key, value
- M*N rows.
e.g.
'USA', 'President', 'Obama'
...
'USA', 'Currency', 'Dollar'
Wide format has N=16 columns: county, key1, ..., keyN
- M rows
example:
country, President, ... , Currency
'USA', 'Obama', ... , 'Dollar'
ワイドフォーマットのデータで新しいテーブルを作成する方法はSQLにありますか?
select distinct key from table;
//これですべてのキーが取得されます。
1)次に、これらの重要な要素を使用してテーブルを作成するにはどうすればよいですか?
2)次に、テーブルの値を入力するにはどうすればよいですか?
私はこれを任意のスクリプト言語(私はPythonが好きです)で実行できると確信していますが、mysqlでこれを実行する簡単な方法があるかどうかを知りたいと思いました。RやSTATAなどの多くの統計パッケージには、頻繁に使用されるため、このコマンドが組み込まれています。
======
より明確にするために、単純なケースで必要な入出力は次のとおりです。
入力:
country attrName attrValue key (these are column names)
US President Obama 2
US Currency Dollar 3
China President Hu 4
China Currency Yuan 5
出力
country President Currency newPkey
US Obama Dollar 1
China Hu Yuan 2