如何在重复记录和非重复记录中选择一个?
问题描述:
我有像下面如何在重复记录和非重复记录中选择一个?
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
,尝试:
select var2, var3, max(ra)
from myTable
group by var2, var3
答
select var2, var3, max(ra)
from table1
group by var2, var3
答
select var2, var3, max(ra) as ra
from tableX
group by var2, var3
答
如果做需要在其他列拉(现有的答案给你已经确切的输出指定),你可以使用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
它只是他的表名! – Vikram 2012-03-10 11:10:36