0

実際のデータ

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
4

1 に答える 1