形成对日期字段进行排序和分类的Tsql查询

形成对日期字段进行排序和分类的Tsql查询,tsql,date,sql-server-2008-r2,Tsql,Date,Sql Server 2008 R2,我有一套: create table #date_example ( date_val datetime, rownum int ) insert #date_example values('3/1/14',1) insert #date_example values('3/1/14',2) insert #date_example values('3/1/14',3) insert #date_example values('2/1/14',4) insert #date_example v

我有一套:

create table #date_example
(
date_val datetime, rownum int
)

insert #date_example values('3/1/14',1)
insert #date_example values('3/1/14',2)
insert #date_example values('3/1/14',3)
insert #date_example values('2/1/14',4)
insert #date_example values('1/3/14',5)

select --top 1 with ties
date_val, 
ROW_NUMBER() OVER(PARTITION BY rownum ORDER BY date_val DESC) AS 'RowNum'

from #date_example
order by date_val
desc
输出:

date_val    RowNum
2014-03-01 00:00:00.000 1
2014-03-01 00:00:00.000 1
2014-03-01 00:00:00.000 1
2014-02-01 00:00:00.000 1
2014-01-03 00:00:00.000 1
但我想要的是输出:

date_val    RowNum
2014-03-01 00:00:00.000 1
2014-03-01 00:00:00.000 1
2014-03-01 00:00:00.000 1
2014-02-01 00:00:00.000 2
2014-01-03 00:00:00.000 3

所以我希望RowNum是一个包含平局的排名。我怎样才能做到这一点呢?

我从另一篇帖子中找到了答案:

select 
date_val, 
Rank() OVER(ORDER BY date_val DESC) AS 'RowNum'

from #date_example

您是否尝试过RANK()或DENSE_RANK()?数据集中按rownum划分的分区rownum是唯一的。使用rownum和rownum确实令人困惑——tsql不区分大小写。有趣的是,你没看到吗?