创建一个将teradata中的字符串连接起来的新列

问题描述

我的表格显示如下:

key month.      nxt_month string

123 01/01/2020  02/01/2020 red,blue,red,green
123 02/01/2020  03/01/2020 green
123 03/01/2020  04/01/2020 blue,blue
124 01/01/2020  02/01/2020 red,yellow,orange
124 02/01/2020  03/01/2020 yellow

我尝试输出的是:

key month.      nxt_month string

123 01/01/2020  02/01/2020 red,green
123 02/01/2020  03/01/2020 green,blue
123 03/01/2020  04/01/2020 blue,orange,yellow
124 02/01/2020  03/01/2020 yellow

例如,对于输出中的第2行,因为它返回从02/01到03/01的字符串。但是,对于第3行,由于无法获得4月的数据,因此我们只需返回第3行的3月值即可。

我已经尝试过以下代码

select key,month,case when nxt_month = lead(month,1)over(partition by key order by month) then  0 else 1 end as flag,trim(trailing',' from (XMLAGG(TRIM(string)'-' order by month)(varchar(10000)))) as pattern
from table
group by 1,2

但是这似乎是错误的,因为我不知道如何仅在flag = 0时才连接字符串,而且在这种情况下也不能按字符串分组。

任何想法都值得赞赏。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)