在netezza中对分组后连接的字符串进行排序

pcww981p  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(465)

我正在使用此页上的代码按组聚合创建字符串的串联列表。
https://dwgeek.com/netezza-group_concat-alternative-working-example.html/
我尝试按排序顺序获取连接的字符串,例如 DB1 我会得到 data1,data2,data5,data9 我将修改原始代码与从预先排序的表中进行选择联系起来,但似乎没有任何区别。

select Col1 
 , count(*) as NUM_OF_ROWS 
 , trim(trailing ',' from SETNZ..replace(SETNZ..replace (SETNZ..XMLserialize(SETNZ..XMLagg(SETNZ..XMLElement('X',col2))), '<X>','' ),'</X>' ,',' )) AS NZ_CONCAT_STRING 
from 
 (select * from tbl_concat_demo order by 1,2) AS A
group by Col1 
order by 1;

有没有办法在字符串聚合之前对其进行排序?
顺便说一句-我知道netezza有一个group_concat udf函数,但我不能访问它。

tag5nh1u

tag5nh1u1#

众所周知,在sql中很难做到这一点,因为排序通常是在返回数据时完成的,而且您希望在“input”集中完成。
尝试以下操作:1)创建临时表x作为select*from tbl\u concat\u demo order by col2 partition by(col1)
在上面的原始代码中:选择x而不是tbl\u concat\u demo
让我知道它是否有效?

相关问题