我有一个记录表试图连接组wise上的多个行,我使用了XMLAGG函数,但是当我试图运行对具有2000条记录的特定组的查询时,会得到错误消息:
选择失败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值,但仍然存在相同的问题。
发布于 2022-05-17 16:06:03
问题是,对于dataset中的每一行,都会重复连接,您需要首先获得不同的Group_desc,尝试如下:
WITH BASE AS(
SEL
H.GROUP_id,
H.Group_name,
H.Group_desc,
MAX(H.LINE_NBR) AS LINE_NBR
FROM TABLE_NAME
GROUP BY 1,2,3
)
SELECT
BASE.GROUP_id,
BASE.Group_name,
TRIM(
TRAILING ',' FROM (
XMLAGG(TRIM(COALESCE(BASE.Group_desc, -1) || '') ORDER BY BASE.LINE_NBR) (VARCHAR(7000)) -- You probably won't need the varchar to be that large.
)
) AS Group_detail
FROM BASE
https://stackoverflow.com/questions/62827997
复制相似问题