The*_*ger 5 postgresql json postgresql-10
在 Postgres 10 中我有下表:
CREATE TABLE testtable (
id int PRIMARY KEY,
qty jsonb
);
INSERT INTO testtable (id,qty)
VALUES
( 1, '{"2018-08-01": 10, "2018-08-11": 20, "2018-10-23": 30}' ),
( 2, '{"2018-08-17": 100, "2018-11-01": 200}' ),
( 3, '{"2018-09-03": 1, "2018-09-01": 2, "2018-10-01": 3}' );
Run Code Online (Sandbox Code Playgroud)
有没有一种快速的方法,使用 SQL 返回每个 JSONB 字段的总和,以便结果为:
ID Total
1 60
2 300
3 6
Run Code Online (Sandbox Code Playgroud)
我已经看到使用 UNNEST 和/或替换(/sf/ask/1868972101/)更复杂的可能性。
然而,我希望有更优雅的东西。
尽管搜索了几个小时,我想我在发布后 10 分钟就找到了答案!
包括供其他人参考:
SELECT id, sum(value::float)
FROM testtable
CROSS JOIN LATERAL jsonb_each_text(qty)
GROUP BY id;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9126 次 |
最近记录: |