2017-01-09 117 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

集團和使用max()每組

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

BTW你應該考慮改變以獲得非空值你桌子的設計。它沒有正常化。

+0

你也可以使用PIVOT,但我更喜歡這種老派的方法。 –

+0

此查詢適用於所有數據庫引擎。 –

相關問題