【发布时间】:2021-03-16 02:34:21
【问题描述】:
我有一个示例表如下:
Date Type String Desired output
01/01 orange aa aa
01/10 orange ab aa,ab
02/01 orange bb aa,ab,bb
02/05 orange ba aa,ab,bb,ba
03/15 orange cc aa,ab,bb,ba,cc
02/11 apple aa aa
所以现在'Date','Type','String'列是已知的,我想返回所需的输出。我现在可以考虑的可能方法是使用连接函数并尝试了一种方法如下:
select
t.*,
row_number()over(partition by Type order by date) as rn,
lag(string)over(partition by type order by date) as prev_string,
case when rn = 1 then string when rn = 2 then concat(prev_string, ',', string) end as desired_output
from
table as t
但是,通过使用上面的代码,它只能在 row_number =2 时返回。如何尝试根据先前的输出附加下一个字符串?我不知道如何解决这部分,并希望获得帮助。如果您能提供其他想法,我将不胜感激!
感谢您的帮助
【问题讨论】:
标签: sql concatenation teradata