実際のデータ
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 (actual_date 順) で構成されます。「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