teradata使用xmlagg函数中的xmlagg get issue或任何等效逻辑连接多行

ikfrs5lh  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(359)

我有一个记录表试图在组上连接多行,我使用xmlagg函数,但当我尝试对具有2000条记录的特定组运行查询时,得到错误消息:
select failed 9134:计算期间已超过聚合的中间聚合存储限制

SELECT 
  H.GROUP_id,
  H.Group_name,
  TRIM(
    TRAILING ',' FROM (
      XMLAGG(TRIM(COALESCE(H.Group_desc, -1) || '') ORDER BY H.LINE_NBR) (VARCHAR(7000))
    )
  ) AS Group_detail

甚至增加了varchar值,但仍然有相同的问题

zhte4eai

zhte4eai1#

XMLAGG() 增加了开销。但是,您可以通过以下方法了解结果集有多大:

SELECT H.GROUP_id, H.Group_name,
       SUM(LENGTH(COALESCE(H.Group_Desc, '-1'))) as total_string_length,
       COUNT(*) as cnt
FROM . . .
GROUP BY H.GROUP_id, H.Group_name
ORDER BY total_string_length DESC

您可能会发现某些组的字符串总数接近或超过7000个字符。
我不确定你是想修复数据还是做其他事情。但这至少应该能找出问题所在。

相关问题