gpt4 book ai didi

sql - 许多列的 SUM 的语法糖

转载 作者:行者123 更新时间:2023-11-29 12:56:46 26 4
gpt4 key购买 nike

我有一个表格,其中有一些我想对每行求和的列。看起来像

ID  VALUE1  VALUE2 VALUE3     ...  VALUE34
============================
1 1 2 2
1 2 2 5
2 3 4 6
2 4 5 7

我知道我可以对两列求和

SELECT  ID, SUM(VALUE1 + VALUE2)
FROM tableName
GROUP BY ID

是否有任何语法糖或其他东西可以帮助我对所有 34 值求和而无需执行 SUM(VALUE1 + VALUE2 + VALUE3 + ...)

最佳答案

如果您不能使用更好的数据模型,那么使用数组呢?这也将允许您更改表中元素的数量而无需更改它:

create table tableName (
id integer,
valuez integer[]
)

您的查询等效于:

select id, valuez[1] + valuez[2] + ... + valuez[34]
from tableName

但是对于数组你可以取消嵌套和求和:

with sums as (
select id, unnest (valuez) as val
from tableName
)
select id, sum (val)
from sums
group by id

这也简化了 null 处理——只需添加 where val is not null 就可以避免大量合并。

关于sql - 许多列的 SUM 的语法糖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41250176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com