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

如何在Azure Cosmos DB中按companyName获取带全属性的唯一项?

解决Azure Cosmos DB按companyName去重获取唯一数据项的问题

先分析你之前的查询错误原因

  • SELECT DISTINCT * FROM c:Cosmos DB中每个文档的_id字段是唯一的,因此DISTINCT *会返回所有文档,无法实现按companyName去重的需求,若文档结构复杂还可能引发解析问题。
  • SELECT DISTINCT VALUE FROM c:语法错误,VALUE关键字后必须指定具体的字段或表达式,不能单独使用。
  • SELECT DISTINCT * ORDER BY c.companyName FROM c:SQL语句顺序错误,ORDER BY子句应放在FROM之后,即便修正顺序,也会因_id唯一无法实现按companyName去重的效果。

正确的实现方案

要获取基于companyName的唯一数据项,可使用GROUP BY结合ARRAY_AGG聚合函数,将同一companyName的文档聚合为数组后取第一个元素,示例SQL如下:

SELECT c.companyName, ARRAY_AGG(c)[0] AS uniqueDocument
FROM c
GROUP BY c.companyName

在function.json中配置时,注意正确转义引号:

"sqlQuery": "SELECT c.companyName, ARRAY_AGG(c)[0] AS uniqueDocument FROM c GROUP BY c.companyName"

补充说明

  • 若仅需获取唯一的companyName值,可使用简化查询:
SELECT DISTINCT c.companyName FROM c
  • 在TypeScript代码中,处理返回结果时,直接提取uniqueDocument字段即可得到去重后的完整文档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:50:00