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

如何将agtype(顶点/边)转为普通Map?边val属性求和方案咨询

解决AGType edges列表val属性求和问题

针对AGType类型的edges数组无法用常规UNWIND求和的问题,给你两个实用方案:

方案一:使用AGGraph专属的ag_unnest函数

这是最适配AGType的方式,专门用来展开AGType数组,之后直接提取val属性求和即可:

SELECT sum((edge).val) AS total_val
FROM (
  -- 替换your_edges_column为你的edges字段名,your_table为表名
  SELECT ag_unnest(your_edges_column) AS edge
  FROM your_table
) AS edges_unfolded;

如果是直接使用AGType数组字面量,也可以直接用:

SELECT sum((edge).val) AS total_val
FROM ag_unnest('[ { "val": 5 }, { "val": 10 }, { "val": 15 } ]'::agtype) AS edge;

方案二:转换为JSONB处理

先通过ag_to_json把AGType转成JSONB格式,再用PostgreSQL原生的jsonb_array_elements展开,最后转换类型求和:

SELECT sum((edge->>'val')::numeric) AS total_val
FROM (
  SELECT jsonb_array_elements(ag_to_json(your_edges_column)::jsonb) AS edge
  FROM your_table
) AS edges_json;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:12:11