如何根据按年份分组的日期对数据进行排名?

时间:2017-09-14 20:00:09

标签: oracle11g informatica-powercenter

我的输入数据如下所示:
Fisclyear__ date
2011年______ 7/1/2010
2011年_____ 8/20/2010
2011年______ 2/30/2011
2012年______ 6/30/2011
2012年______ 8/15/2011
2013年______ 7/15/2013
2013年______ 7/30/2013

我需要根据按日期顺序排列数据并按年份分组,我的结果应如下所示

Fisclyear__ date ______rank
2011 ______ 7/01/2010 ___ 01
2011 ______ 8/20/2010 ___ 02
2011 ______ 2011年2月30日___ 03
2012 ______ 2011年6月30日___ 01
2012 ______ 8/15/2011 ___ 02
2013 ______ 7/15/2013 ___ 01
2013年______ 7/30/2013 ___ 02

2 个答案:

答案 0 :(得分:0)

使用Oracle分析函数ROW_NUMBER()按年分配ORDERBY日期...我无法找到确切的语法,但它可以正常工作

答案 1 :(得分:0)

以下列方式在表达式中使用变量端口:

v_rank = IIF(Fisclyear = v_prev_Fisclyear, v_rank + 1, 1)
v_prev_Fisclyear = Fisclyear

现在,创建一个输出端口:

rank = v_rank