2017-01-09 9 views
2

私は以下のものを含むテーブルを持っていますが、それらをグループ化して以下の出力を得ようとしています。出来ますか? idによって複数の行をまとめてグループ化する

入力

ID Value1 Value2 Value3 
5  Y   NULL  NULL 
5  NULL  1   NULL 
5  NULL  NULL  USA 
5  NULL  NULL  NULL 
6  N   NULL  NULL 
6  NULL  2   NULL 
6  NULL  NULL  GBP 
6  NULL  NULL  NULL 

出力

ID  Value1  Value2  Value3 
5  Y   1   USA 
6  N   2   GBP 
+1

この結果を生成した元のクエリを送信して修正することができます。今は単純な 'Group by'と' Min/Max'集計で結果を得ることができます –

答えて

6

グループとところで、あなたが変更について考える必要があり、各グループごとに

select id, 
     max(value1) as value1, 
     max(value2) as value2, 
     max(value3) as value3 
from your_table 
group by id 

をnull以外の値を取得するためにmax()を使用あなたはテーブルデザイン。正規化されていません。

+0

PIVOTを使うこともできますが、私はこの古い学校のアプローチも好きです。 –

+0

このクエリはすべてのDBエンジンで機能します。 –

関連する問題