我有一张包含这些数据的表格;
ID Date_Weekly_List
1 12/08/2014
2 12/08/2014
3 12/08/2014
4 07/08/2014
5 07/08/2014
6 06/08/2014
并且希望收到一个结果集,该结果集按周列表排序行,最近的日期是第一个;
ID Date_Weekly_List Rank
1 12/08/2014 1
2 12/08/2014 1
3 12/08/2014 1
4 07/08/2014 2
5 07/08/2014 2
6 06/08/2014 3
我试过使用Rank函数分区并按date_weekly_list排序但是这总是返回1作为排名,我哪里出错了?
select id, date_weekly_list, rank() over (partition by date_weekly_list order by date_weekly_list desc)
from my_table
答案 0 :(得分:0)
如果我理解正确,您需要删除分区子句:
select id, date_weekly_list, rank() over (order by date_weekly_list desc)
from my_table
否则,您将对每个日期的日期进行排名,并且如您所发现的,所有日期都将排名为1.如果您想要消除差距,请使用:
select id, date_weekly_list, dense_rank() over (order by date_weekly_list desc)
from my_table