实际数据
colA group_date type desc actual_date
ABC123 1/15/2013 A TEST1 1/17/2013
ABC123 1/15/2013 B TEST1 1/17/2013
ABC123 1/15/2013 A TEST2 1/19/2013
ABC123 1/15/2013 I IGNORE_1 1/22/2013
ABC123 3/15/2013 B TEST3 3/20/2013
XYZ456 6/10/2012 A XYZTEST1 6/12/2012
XYZ456 6/10/2012 B XYZTEST2 6/13/2012
XYZ456 6/10/2012 A XYZTEST2 6/13/2012
XYZ456 10/1/2012 B XYZTEST3 10/5/2012
XYZ456 11/15/2012 B XYZTEST4 11/18/2012
SSS999 4/10/2011 A SSSTEST1 4/13/2011
SSS999 4/10/2011 B SSSTEST2 4/14/2011
SSS999 4/10/2011 A SSSTEST2 4/14/2011
SSS999 4/10/2011 A SSSTEST3 4/19/2011
SSS999 8/5/2011 B SSSTEST4 8/7/2011
SSS999 8/5/2011 I IGNORE_SSS1 8/14/2011
SSS999 11/5/2011 B XYZTEST4 11/18/2011
SSS999 11/5/2011 B XYZTEST5 11/20/2011
SSS999 12/15/2011 B XYZTEST6 12/16/2011
我试图找出一种方法来获得每个组的排名/行号。唯一的行号(应该递增、分区?)由 colA、group_date、desc(按实际日期排序)组成。如果“desc”和“actual_date”记录相同,数字应该重复,我相信我已经可以开始工作了。
我的问题是每次遇到“I”类型记录时它都应该“重置”计数。这个“I”类型的记录可以分配一个0的row_number,或者我的偏好是省略它,因为一旦获得正确的行号,它将从表中删除......它仅供参考。
这是我目前的目标(包括可以在最终查询中删除的“I”记录):
目标结果
colA group_date type desc actual_date row_num
ABC123 1/15/2013 A TEST1 1/17/2013 1
ABC123 1/15/2013 B TEST1 1/17/2013 1
ABC123 1/15/2013 A TEST2 1/19/2013 2
ABC123 1/15/2013 I IGNORE_1 1/22/2013 0
ABC123 3/15/2013 B TEST3 3/20/2013 1
XYZ456 6/10/2012 A XYZTEST1 6/12/2012 1
XYZ456 6/10/2012 B XYZTEST2 6/13/2012 2
XYZ456 6/10/2012 A XYZTEST2 6/13/2012 2
XYZ456 10/1/2012 B XYZTEST3 10/5/2012 3
XYZ456 11/15/2012 B XYZTEST4 11/18/2012 4
SSS999 4/10/2011 A SSSTEST1 4/13/2011 1
SSS999 4/10/2011 B SSSTEST2 4/14/2011 2
SSS999 4/10/2011 A SSSTEST2 4/14/2011 2
SSS999 4/10/2011 A SSSTEST3 4/19/2011 3
SSS999 8/5/2011 B SSSTEST4 8/7/2011 4
SSS999 8/5/2011 I IGNORE_SSS1 8/14/2011 0
SSS999 11/5/2011 B XYZTEST4 11/18/2011 1
SSS999 11/5/2011 B XYZTEST5 11/20/2011 2
SSS999 12/15/2011 B XYZTEST6 12/16/2011 3