Есть ли способ найти сумму каждой строки? postgresql - PullRequest
0 голосов
/ 23 апреля 2020

Допустим, у вас есть таблица из n столбцов, например

  create table x
     (id integer
      x0 integer,
      x1 integer,
      x2 integer,
      x3 integer,
      .....
      xn integer
      primary key(id)
      )

n может быть большим числом, также вы не знаете имен столбцов. Допустим, у вас есть 50 строк, таких как

insert into x (74934,1, 9, 21, 5....16)
insert into x (58496,4, 2, 3, 19....52)
.....
insert into x (10475,48, 245, 8, 71....111)

Есть ли способ найти сумму каждой строки? Как 1 + 9 + 21 + 5 + ... + 16 = сумма первого ряда

1 Ответ

0 голосов
/ 23 апреля 2020

Использование JSON (B) функций :

with t(id, x1, x2, x3) as (values(1,1,2,3),(2,4,5,6))
select
    id,
    (select sum(value::numeric) from jsonb_each(to_jsonb(t)) where key like 'x%')
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...