2012-03-10 21 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 

なり、私を助けてください。おかげであなたはvar1を望んでいないと仮定すると、

答えて

3

、試してください:あなたはが他の列にプルする必要があります場合

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

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 
関連する問題