如何在Teradata 13

时间:2016-01-16 11:45:49

标签: concatenation teradata reset rank

我有下表:

ID_CLT  STEPS             INNER RANK
61081   ROUND_SIG_1               1
61081   AR_OK                     2
61081   ABS_FT                    3
61081   ROUND_SIG_2               1
61081   TECH_DISPATCH             2
61081   AR_OK                     3
61081   RET_FT                    4
61081   RET                       5
61081   CLOSED                    1

我想将这些步骤连接在一起,直到INNER RANK重置为1,换句话说,我想要以下输出:

ID_CLT  STEPS                                           INNER RANK
61081   ROUND_SIG_1 AR_OK ABS_FT                             1
61081   ROUND_SIG_2   TECH_DISPATCH AR_OK REFT_FT RET        1
61081   CLOSED                                               1

关于输入表,我使用的查询的简化版本是:

SELECT alpha.ID_CLT , 
             alpha.STEPS,
             rank() over (partition by alpha.ID_CLT
            order by alpha.RNK
           RESET WHEN (alpha.STEPS LIKE 'ROUND%' OR  alpha.STEPS LIKE 'CLOSED')) as SEQQ FROM (  SELECT  ID_CLT, STEPS, RNK) alpha

RNK列为给定的ID_CLT命令不同的时间步骤

有什么想法我可以继续获得这个结果吗?我尝试过使用rank(),row_number()和RESET WITH语法的许多技巧,但它没有工作......

提前谢谢你。

问候。

0 个答案:

没有答案