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

如何在Couchbase中统计数组内指定键值的出现次数?

解决方案:统计Couchbase数组中指定键的不同值出现次数

针对单个活动的统计查询

如果只需要统计指定活动(如Brand Management)的出现次数并返回包含活动名称的结果,可使用以下N1QL查询:

SELECT RAW { attr.activity : COUNT(1) }
FROM workflow wf
UNNEST wf.attributes attr
WHERE wf.appId = "f1606a90-c96f-4db9-8e5f-9f0b6d2d2116"
  AND attr.activity = 'Brand Management'
GROUP BY attr.activity;

返回结果

[
    {
        "Brand Management": 2
    }
]

如果你需要保留外层的键名(如activity_count),可去掉RAW关键字:

SELECT { attr.activity : COUNT(1) } AS activity_count
FROM workflow wf
UNNEST wf.attributes attr
WHERE wf.appId = "f1606a90-c96f-4db9-8e5f-9f0b6d2d2116"
  AND attr.activity = 'Brand Management'
GROUP BY attr.activity;

返回结果

[
    {
        "activity_count": {
            "Brand Management": 2
        }
    }
]

通用场景:统计所有活动的出现次数

如果需要一次性统计所有activity键对应的不同值的出现次数,可使用OBJECT_AGG函数将结果合并为一个对象:

SELECT OBJECT_AGG(attr.activity, COUNT(1)) AS activity_counts
FROM workflow wf
UNNEST wf.attributes attr
WHERE wf.appId = "f1606a90-c96f-4db9-8e5f-9f0b6d2d2116"
  AND attr.activity IS NOT NULL
GROUP BY wf.appId;

返回结果

[
    {
        "activity_counts": {
            "Brand Management": 2,
            "Upsert": 1
        }
    }
]

核心逻辑说明

  1. UNNEST:展开attributes数组,将数组中的每个元素转换为独立的查询行;
  2. GROUP BY attr.activity:按活动名称分组,确保统计的是每个活动的独立出现次数;
  3. COUNT(1):统计每组的行数,即对应活动的出现次数;
  4. 对象构造/聚合:通过{ attr.activity : COUNT(1) }或OBJECT_AGG生成你需要的键值对结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:34:57