为每列获取前2个不同的值

时间:2014-02-23 07:29:40

标签: sql distinct

我需要为表中的每列选择前2个不同的值。根据日期字段选择前2个值。

Table A
status   id    Col1    Col2      Col3      Date
A        1     Name1   Name4     Name6     1/18/14 5:54
B        1     Name1   Name5     Name6     1/18/14 5:54
B        1     Name2   Name6     Name6     1/12/14 5:54
B        1     Name2   Name6     Name7     10/11/13 3:34

结果:

status   id    Col1    Col2      Col3
A        1     Name1   Name4     Name6
B        1     Name2   Name5     Name7

1 个答案:

答案 0 :(得分:0)

如果这对于sql server你可以尝试:

;with cte as(

select *,row_number() over(partition by status order by Date desc) as rn from table
)

select status,id,col1,col2,col3 from cte where rn=1

See Demo