#sql #postgresql
#sql #postgresql
Вопрос:
Ввод:
postgres=> select sets from matches limit 2;
sets
----------------------
{{6,4},{6,2}}
{{6,3},{5,7},{10,4}}
(2 rows)
Ожидаемое (сумма значений в каждом массиве)
postgres=> select sets from matches limit 2;
sets
----------------------
18
33
(2 rows)
Я пытался, но это дает мне только значение двух первых значений в первом подмассиве:
postgres=> select unnest(sets) from matches limit 2;
unnest
--------
6
4
(2 rows)
Ответ №1:
Вы можете использовать скалярный подвыбор:
select (select sum(i)
from unnest(sets) as t(i)) as sum
from matches;
Ответ №2:
Я давно не работал с postgres, но, может быть, вам не хватает части суммы?:
SELECT
sum(a) AS total
FROM
(
SELECT
unnest(sets from matches) AS a
) AS b