首页 > 解决方案 > 如何计算特定键在任意键大小的 json 列中出现在整个表中的次数

问题描述

例如,如果我有

colA
{"a" : 1, "b": 2}
{"b" : 3}
{}

我希望我的结果是:

key, count
a, 1
b, 2

标签: jsonpostgresql

解决方案


如果您不需要处理嵌套的 json 结构,您可以使用它jsonb_object_keys来遍历所有键:

select x.ky, count(*)
from the_table t
  cross join jsonb_object_keys(t.col_a) as x(ky)
group by x.ky
order by x.ky;

推荐阅读