如何在postgresql中计算json数组中的所有键
我有一个表,其中有表单id和表单字段列如何在postgresql中计算json数组中的所有键,json,postgresql,Json,Postgresql,我有一个表,其中有表单id和表单字段列 ======================= form_id | form_fields ======================= 1 | [abc,def] 现在还有一个表包含提交表单的响应数据,如下所示 ================================ device_id | form_id | response ================================ 101 | 1
=======================
form_id | form_fields
=======================
1 | [abc,def]
现在还有一个表包含提交表单的响应数据,如下所示
================================
device_id | form_id | response
================================
101 | 1 | {abc:true}
================================
102 | 1 | {def:true}
================================
103 | 1 | {def:true}
================================
101 | 2 | {xyz :true}
我想从第二个表中获取第一个表中form\u id
1
的form\u字段的所有数组值计数。我的意思是结果可能是这样的
{abc:1,def:2}
一种方法是对所有响应生成一个简单的json,然后逐个迭代json对象并检查值。有没有其他有效和更好的方法来解决这个问题?我是新来的postgres
,如果这太基本了,请忽略
谢谢 我不太确定这个{abc:true}
,因为我只处理列中的值,而不是键值对,所以如果我错了,请纠正我
但是,如果它们也只是值(比如varchar/…),那么这应该是可行的
从您的表格中选择count(*),其中form\u id=1,response='abc'
从表格中选择count(*),其中form_id=1,response='def'