问题描述
我的表格显示如下:
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 (将#修改为@)