我想在我的表中聚合多行数据,但如果有重复值,我只需要一个值。
Example
col1 col2 col3 col4
abc abc abc abc
abc abc abc bcd
所以我在col1,col2上做一个小组,并在col3,col4上做一个字符串聚合。
我想要结果像abc abc abc abc; bcd
正则表达式可以删除重复的单词
可能存在col3值类似于
的情况
例如
col1 col2 col3 col4
abc abc abcaabc abc
abc abc abcaabc bcd
所以在这种情况下,我不想删除同一句子中两次的abc
上面的输出应该是abc abc abcaabc abc; bcd
答案 0 :(得分:0)
我认为可以分三步完成: 首先,将col3和col4合并为一个列。 然后重复删除值。 最后,通过col1,col2聚合并进行连接。
select col1, col2,
STRING_AGG(col3,';') as RESULT
from (
select col1, col2, col3
from t1
union --union operator will make a distinct, try with union all instead
select col1, col2, col4
from t1
)nested
group by col1, col2
这能解决你的问题吗?