我希望做一些操作存儲在PostgreSQL 9.4 JSON
格式的數字。假設我有這張表:如何計算嵌套在PostgreSQL JSON號碼?
CREATE TABLE t (id SERIAL, a JSON);
INSERT INTO t (a)
VALUES ('[[0.1, 2.0], [0.3, 4.0], [0.5, 6.0]]'),
('[[0.7, 8.0], [0.9, 10.0]]');
所以我可以用例如json_array_elements()
:
SELECT id, json_array_elements(a) AS sub1 FROM t;
id | sub1
----------------
1 | [0.1, 2.0]
1 | [0.3, 4.0]
1 | [0.5, 6.0]
2 | [0.7, 8.0]
2 | [0.9, 10.0]
請注意,元素的數量可能會有所不同。現在,我希望做一些計算與子元素,如:
SELECT id,
((json_array_elements(a)->>0)::FLOAT) *
((json_array_elements(a)->>1)::FLOAT) as result
FROM t
但是我得到的錯誤:ERROR: functions and operators can take at most one set argument
。任何提示?
出色答卷! – n1000