【问题标题】:Sorting concatenated strings after grouping in Netezza在 Netezza 中分组后对连接的字符串进行排序
【发布时间】:2020-11-21 12:24:08
【问题描述】:

我正在使用此页面上的代码按聚合创建串联的字符串列表。

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 函数,但我无法访问它。

【问题讨论】:

  • 您有机会测试我建议的解决方案吗?

标签: sql xml netezza


【解决方案1】:

众所周知,这在 sql 中很难完成,因为排序通常在返回数据时完成,而您希望在“输入”集中进行。

试试这个: 1) 创建临时表 X 作为 select * from tbl_concat_demo Order by col2 按 (col1) 分区

在上面的原始代码中:从 X 中选择而不是 tbl_concat_demo

让我知道它是否有效?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2016-07-18
    相关资源
    最近更新 更多