我在表中有以下数据集:
order_no channel
619 Sa
619 Da
619 Fa
882 Fa
882 Fa
709 Sa
709 Da
274 Da
274 Da
现在,我想根据订单号合并频道,如下所示
order_no channel Required Result
619 Sa Sa_Da_Fa
619 Da Sa_Da_Fa
619 Fa Sa_Da_Fa
882 Fa Fa_Fa
882 Fa Fa_Fa
709 Sa Sa_Da
709 Da Sa_Da
274 Da Da_Da
274 Da Da_Da
但我没有得到正确的结果时,渠道是相同的
order_no channel Actual Result
619 Sa Sa_Da_Fa
619 Da Sa_Da_Fa
619 Fa Sa_Da_Fa
882 Fa Fa
882 Fa Fa
709 Sa Sa_Da
709 Da Sa_Da
274 Da Da
274 Da Da
我正在使用以下查询:
select order_no, concat_ws('_',collect_set(distinct (channel))) as channels
from table A
问题是,如果与一起使用,集合将不会有任何重复值 distinct
. 有没有其他方法来写这个查询?
1条答案
按热度按时间dzhpxtsq1#
基本上,你做的工作比你需要的要多。
collect_set()
无论如何都会消除重复项,这就是为什么不需要使用distinct
接线员。如果你想包括双磷酸盐,你需要使用
collect_list()
功能。另请参见配置单元语言手册。