我正在尝试对我所做的 listagg 查询中的值求和。
预期的结果应该是这样的
SELECT LEGAL_ENTITY_ID, SUM(0 + 0 + 0 + 1) as Grandtotals
FROM V_VBA_DDCR_MAIN WHERE LEGAL_ENTITY_ID=6012346 AND ROWNUM=1
GROUP BY LEGAL_ENTITY_ID
| LEGAL_ENTITY_ID | GRANDTOTALS
1| 6012346 | 1
我的列表是这样的
SELECT LISTAGG(NVL2(FLDNM,0,1) , '+ ') WITHIN GROUP (ORDER BY FLDNM) FROM LE_MERGE_DDC_MAPPING
此查询的目的是计算一行中空字段的数量。我创建了一个表,其中包含需要检查空值的字段列表。
结果 :
fld1 + fld2 + fld3 + fld4
=
0 + 0 + 0 + 1
所以我这样写了我的查询:
SELECT LEGAL_ENTITY_ID, SUM(SELECT LISTAGG(NVL2(FLDNM,0,1) , '+ ') WITHIN GROUP
(ORDER BY FLDNM) FROM LE_MERGE_DDC_MAPPING) as Grandtotals
FROM V_VBA_DDCR_MAIN WHERE LEGAL_ENTITY_ID=6000132
GROUP BY LEGAL_ENTITY_ID
但是,我收到错误 ORA-00936:缺少表达式。我不确定 Oracle 是否允许您对 listagg 函数求和。任何帮助表示赞赏。