我在AdWords中存储AdWords报告数据。每个报告存储在一个名为Reports的表中,其中有一个名为'data'的jsonb列。每个报告都有存储在它的“数据”字段的JSON看起来,看起来像这样:如何计算Postgres中的json数据
[
{
match_type: "exact",
search_query: "gm hubcaps",
conversions: 2,
cost: 1.24
},
{
match_type: "broad",
search_query: "gm auto parts",
conversions: 34,
cost: 21.33
},
{
match_type: "phrase",
search_query: "silverdo headlights",
conversions: 63,
cost: 244.05
}
]
我想要做的就是查询关闭这些数据散列和总结转换的总数为给定的报告。我查看了Postgresql文档,看起来你只能真正对散列进行计算,而不是像这样的散列数组。我正在尝试在postgres中做什么?我是否需要从这个数组中创建一个临时表并进行计算?或者我可以使用存储过程吗?
我使用PostgreSQL 9.4
编辑 我不只是使用普通的,标准化的表的原因是,这仅仅是一个的报告数据是如何被结构化的例子。在我的项目中,报告必须允许使用任意键,因为用户使用任何他们喜欢的列上传CSV。这基本上只是一种绕过任意多个用户创建表的方式。
也许你应该把它作为一个永久表,因为这个结构完全符合关系模型并保持在JSON中意味着每个查询都将变得更加复杂和低效。 – 2015-03-19 15:05:50
表格定义(psql中的'\ d tbl')和你的Postgres版本对于这个问题是必不可少的*。另外:总和惯例*每个报告*或总体? – 2015-03-19 15:10:13