我在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