2017-03-15 11 views
0

私は実際にパンダライブラリとpythonでそれを行うことができますが、ときに、データ、それは非常に遅いです標準SQLでテーブルを再編成する方法は?

Id | Name | Num 
---------------- 
#1 | a | 3 
#1 | b | 4 
#2 | a | 1 
#2 | e | 2 

のようなテーブルを持っており、

| a | b | e 
--------------- 
#1 | 3 | 4 | 
#2 | 1 | | 2 

にそれを再編成したいと思いますセットは大きいです。 SQLで実行できるのだろうかと思います。

答えて

2

これはピボットと呼ばれます。汎用メソッドは条件付き集計を使用します。

select id, 
     max(case when name = 'a' then num end) as a, 
     max(case when name = 'b' then num end) as b, 
     max(case when name = 'e' then num end) as e 
from t 
group by id; 

これは、3つの追加の列が必要であることを前提としています。任意の値の列をnameにする場合は、動的SQLを構築する必要があります。上記のテンプレートに従うと、Pythonでそのようなクエリを作成するのが難しくないかもしれません。

+0

あなたの答えが本当に役立ちます!ありがとう:D –

関連する問題