2012-03-10 161 views
0

我有像下面如何在重複記錄和非重複記錄中選擇一個?

var1  var2  var3  ra 
a   a   a   1 
b   a   a   2 
c   a   a   3 
d   b   b   4 
e   c   c   1 

重複記錄的表是基於columns var2 and var 3鑑定。最後一列是重複項的行號。我只需要選擇重複記錄和其他非重複記錄中的最大行號記錄。

預期產量將

var2  var3  ra 
a   a   3 
b   b   4 
c   c   1 

請幫助我。由於

回答

3

假設你不想var1,嘗試:

select var2, var3, max(ra) 
from myTable 
group by var2, var3 
0
select var2, var3, max(ra) 
from table1 
group by var2, var3 
+1

它只是他的表名! – Vikram 2012-03-10 11:10:36

0
select var2, var3, max(ra) as ra 
from tableX 
group by var2, var3 
1

如果需要在其他列拉(現有的答案給你已經確切的輸出指定),你可以使用ROW_NUMBER()

;WITH OrderedRows as (
    SELECT *,ROW_NUMBER() OVER (PARTITION BY var2,var3 ORDER BY ra desc) as rn 
    FROM <Table> 
) 
SELECT 
    * --TODO - Explicit column list 
FROM 
    OrderedRows 
WHERE 
    rn = 1