如何对PostgreSQL的jsonb数组列逐行求和?
PostgreSQL jsonb数组列每行求和解决方案
假设你的表名为your_table,包含"index"(注意index是PostgreSQL关键字,需用双引号包裹)和snx_wavelenghts(jsonb类型数组)两列,可通过以下SQL实现每行数组元素求和:
SELECT "index", SUM((jsonb_array_elements_text(snx_wavelenghts))::numeric) AS "sum(snx_wavelenghts)" FROM your_table GROUP BY "index";
代码说明:
jsonb_array_elements_text(snx_wavelenghts):将jsonb数组中的每个元素拆分为单独的文本行::numeric:将文本元素转换为数值类型(如果数组元素是整数,也可使用::int)GROUP BY "index":按行的index分组,对每行拆分后的元素求和
示例结果:
| index | sum(snx_wavelenghts) |
|---|---|
| 1 | 223123 |
| 2 | 223123 |
内容的提问来源于stack exchange,提问作者Matheus Bento
相关产品推荐
相关产品推荐

