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

如何在Azure Cosmos DB SQL API中正确使用SUM聚合函数分组查询

Cosmos DB 分组聚合查询正确解决方案

报错根因

  • VALUE 关键字的作用是指定查询仅返回该关键字后紧跟的单个值,不能和其他普通字段并列写在 SELECT 子句中,你之前将VALUE SUM(...)和SUPPLIER、PARTNUMBERID字段并列书写,违反了语法规则,触发第一个报错。
  • Cosmos DB 对跨分区的聚合类查询强制要求使用VALUE关键字返回聚合结果,所以省略VALUE的写法不满足跨分区查询要求,触发第二个报错。

正确查询语句

你需要把需要返回的分组维度字段和聚合值打包成单个对象,放在VALUE关键字后即可:

SELECT VALUE {
    SUPPLIER: od.SUPPLIER,
    PARTNUMBERID: p.PARTNUMBERID,
    QTY: SUM(p.QTY)
}
FROM od
JOIN p IN od.PARTNUMBER
GROUP BY od.SUPPLIER, p.PARTNUMBERID

效果说明

针对你提供的样例文档,执行上述查询后将返回符合需求的统计结果:

[
    {"SUPPLIER": "XPTO", "PARTNUMBERID": "PARTNUMBER0001", "QTY": 530},
    {"SUPPLIER": "XPTO", "PARTNUMBERID": "PARTNUMBER0002", "QTY": 593},
    {"SUPPLIER": "ZZZZ", "PARTNUMBERID": "PNZZZZ0001", "QTY": 530},
    {"SUPPLIER": "ZZZZ", "PARTNUMBERID": "PNZZZZ0002", "QTY": 593}
]

该写法同时兼容跨分区查询规则,不会触发权限类报错。

内容的提问来源于stack exchange,提问作者Jose Marcelo Dias de Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:09:01