1
如果我的表被設置,如:總和都在JSONB陣列領域的項目
indicators:
id: 56789,
funding (JSONB): [
{
amount: 345678
},
{
amount: 7899
}
]
我可以成功地總結與每個記錄的第一含量:
導軌 - Indicator.sum("(funding->0->>'amount')::float")
SQL - SELECT SUM((funding->0->>'amount')::float) FROM "indicators"
如何查詢所有amounts
的總和(不只是0索引項目)?
Running Rails 5 & Postgres 9.5.4。
注:這篇文章是類似於How do I query using fields inside the new PostgreSQL JSON datatype? - 但我正在尋找一種方式來遍歷每個數組元素的總結他們(而不是通過索引號直接調用它們)。
更新... 感謝以下@克林的回答,我能夠放在一起的Rails版本,使得聚集總給我:
Indicator.joins("cross join lateral jsonb_array_elements(funding)").sum("(value->>'amount')::float")