You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL报not a single-group group function错误求助

问题根源
  • 报错是因为SQL中使用了两层嵌套的XMLAgg聚合函数,当前仅按vm.value单层分组无法满足嵌套聚合的分组要求:
    • 内层XMLAgg用于生成每个分组(GRUP)下的CLAUSE节点,需要先按vm.value+c.description_group分组聚合
    • 外层XMLAgg用于生成每个分类(CLASIFICATION)下的GRUP节点,需要基于内层聚合结果再按vm.value分组
修复后的SQL代码
SELECT
  XMLELEMENT(
    "CLASIFICATION",
    XMLATTRIBUTES(t.value As "name"),
    XMLAgg(
      XMLElement(
        "GRUP",
        XMLATTRIBUTES(t.description_group As "name"),
        t.clause_xml
      )
    )
  )
FROM (
  -- 内层先按分类、分组维度聚合生成CLAUSE节点
  SELECT
    vm.value,
    c.description_group,
    XMLAgg(
      XMLElement(
        "CLAUSE",
        XMLATTRIBUTES(cla.description_clause As "name")
      )
    ) AS clause_xml
  FROM
    dbo.clause cla,
    dbo.clause_group c,
    dbo.values vm
  WHERE
    vm.table_name = 'CLAUSE_TYPES'
    AND c.code = vm.code
    AND cla.id_group = c.id_group
  GROUP BY
    vm.value,
    c.description_group
) t
GROUP BY
  t.value
验证说明
  • 分层聚合后,每层XMLAgg对应的非聚合列都已经加入了对应层级的GROUP BY子句,符合Oracle分组聚合的语法规则,不会再触发not a single-group group function报错。
  • 生成的XML结构和原始需求完全一致,不会改变输出结果格式。

内容的提问来源于stack exchange,提问作者Xavier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:24:00