如何获得max(denseRank) - 1的每个colA的colDate行

时间:2015-06-10 19:18:08

标签: sql sql-server

我正在努力解决以下问题:

colA     colDate     DenseRank
-------------------------------
a         2015-06-10     1
a         2015-06-09     2
b         2015-06-10     1
b         2015-06-09     2
b         2015-06-08     3

我想得到这个结果

a   2015-06-10   1
b   2015-06-09   2

是否有可能通过查询得到这个或我只能通过t-sql获得这个?我能得到解决方案的例子吗? 提前谢谢你......

1 个答案:

答案 0 :(得分:3)

这个怎么样? (应该与SQL Server 2005 +一起使用)

select colA, colDate, DenseRank
from (
   select colA, colDate, DenseRank, row_number() over (partition by colA order by DenseRank desc) rn
   from YourTable
) x
where x.rn = 2

编辑:已更改为使用row_number()而非rank()

另外,您没有指定,但我假设对于给定的colA值,您不能有任何重复的DenseRank值。