gpt4 book ai didi

SQL 求和数字的位数

转载 作者:行者123 更新时间:2023-12-04 15:54:01 24 4
gpt4 key购买 nike

我正在使用 presto。我有一个数字 ID 字段。我想要一列将 id 中的数字相加。所以如果 ID=1234,我想要一个输出 10 的列,即 1+2+3+4。

我可以使用子字符串来提取每个数字并对其求和,但是有没有我可以使用的函数或更简单的方法?

最佳答案

您可以组合 regexp_extract_all来自@akuhn 的回答 lambda最近为 Presto 添加了支持。这样你就不需要 unnest .如果不需要 cast,代码将是不言自明的。往返 varchar :

presto> select
reduce(
regexp_extract_all(cast(x as varchar), '\d'), -- split into digits array
0, -- initial reduction element
(s, x) -> s + cast(x as integer), -- reduction function
s -> s -- finalization
) sum_of_digits
from (values 1234) t(x);

sum_of_digits
---------------
10
(1 row)

关于SQL 求和数字的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39860241/

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