sql—如何对列的每行值求和?

x759pob2  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(518)

我有一个sql表,其中包含一列int,如下所示

Index   Column to sum
1   1:5:13:3:6:7:11:2:4:1:2:5
2   1:7:2:1:1
3   19:05:05
4   2:1:1:5:1:4:64:177:86:75:2:83:2:57:1
5   43
6   1:1:1:3:10:6:1
7   2:11:4:3:1
8   1:5:2:3:34:2:2
9   4:3:1:2
10  4:1:1:4

我想在sql中计算列中每一行的和来求和值。它会给出这样的结果:

1 60
2 12
...
10 10

你知道吗?谢谢

wgx48brx

wgx48brx1#

正如gordonlinoff所说,您的第一项工作应该是修复数据模型。数字应该存储在一个单独的表中,每个值都在一个单独的行中。
在postgres中,可以使用 regexp_split_to_table() ,然后聚合:

select t.id, sum(x.val::int) result
from mytable t
cross join lateral regexp_split_to_table(t.column_to_sum, ':') as x(val)
group by t.id

相关问题