我的“答案”表中有一个名为“值”的列。
| value |
|---------|
| [1,2] |
| [1] |
| [1,2,3] |
“值”的类型是“jsonb”。
我想得到每一行中每个数组的平均值:
SELECT avg(value) AS avg_value
FROM answers
但这不起作用,因为 avg() 不是 jsonb 函数。我试过了:
SELECT avg(value::integer[]) as avg_value
FROM answers
即尝试将 jsonb 数组转换为整数数组,然后取平均值,但我收到以下错误:“无法将类型 jsonb 转换为整数 []。null”。
有任何想法吗?
您需要使用
jsonb_array_elements
.您可以在相关子查询中执行此操作:
DB小提琴