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

PostgreSQL中jsonb_path_query_array如何对数组内值去重?

PostgreSQL jsonb_path_query_array 结果去重方案

jsonb_path_query_array本身没有内置的去重参数,要实现数组元素去重,可以通过拆分元素→去重→重新聚合的方式处理,以下是具体实现:

方法示例

假设你的表主键为id,JSONB字段为your_json_column,执行以下查询即可得到去重后的数组:

SELECT
    id,
    jsonb_agg(DISTINCT elem) AS unique_types
FROM
    public.your_table,
    jsonb_path_query(your_json_column, '$.Idents.type') AS elem
GROUP BY
    id;

补充说明

  • 如果JSON数组中包含null值,且需要过滤掉这些空值,可以在查询中添加条件:
    SELECT
        id,
        jsonb_agg(DISTINCT elem) AS unique_types
    FROM
        public.your_table,
        jsonb_path_query(your_json_column, '$.Idents.type') AS elem
    WHERE
        elem IS NOT NULL
    GROUP BY
        id;
    
  • 若表中没有明确的分组键(如主键),可以用ctid临时分组(仅适用于无并发修改的场景),或者根据实际业务字段分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:45:54