2012-08-08 28 views
2

希望有人能指出我正確的方向。我有點頭髮拉的時刻。SQL - 分組複製和唯一標識問題

下面是一些樣本數據:

ID SUBID COL1  COL2  COL2  COL3 
1  10001 Test 1 Test 2 Test 3 Test 4 
2  10002 Test 1 Test 2 Test 3 Test 4 
3  10003 Test 1 Test 2 Test 3 Test 4 
4  10004 Test 1 Test 2 Test 3 Test 4 
5  10005 Test 5 Test 6 Test 7 Test 8 

我需要的結果是這樣的:

ID SUBID COL1  COL2  COL2  COL3 
4  10004 Test 1 Test 2 Test 3 Test 4 
5  10005 Test 5 Test 6 Test 7 Test 8 

我需要組基於COL1,COL2,COL3 & COL4這是所有副本很簡單,但我需要從ID和SUBID列中的分組中輸出一個數字,它來自哪個分組行並不重要,它只需要一個值。

性能也是這樣做的關鍵,因爲我查詢了數百萬行。

希望以上內容是有道理的,謝謝。

回答

1

您可以使用min或max。他們不會來自同一排,但它「僅僅是一種價值」。

select min(id), min(subid), col1, col2, col3, col4 
from tab 
group by col1, col2, col3, col4 
+0

我敢肯定我早些時候嘗試過,它沒有工作!現在開始工作,非常感謝Stefan。 – PaulHR 2012-08-08 12:31:12

0
select id, subid, COL1, COL2, COL3, COL4 
from your_table 
where id in (
      select min(id) 
      from your_table 
      group by COL1, COL2, COL3, COL4 
      )