首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使PostgreSQL聚合函数sum()返回NULL,如果增编中至少有一个为NULL

使PostgreSQL聚合函数sum()返回NULL,如果增编中至少有一个为NULL
EN

Stack Overflow用户
提问于 2021-12-16 10:40:11
回答 1查看 555关注 0票数 1

在PostgreSQL聚合函数sum()中,如果组中只有一个值为null的成员,则返回null:SELECT sum(null::integer);给出null。如果组中有多个增编,其中至少有一个不是null,则剩余的值为null的加载项将转换为0,然后将所有加载项之和。因此,组和( null,null,3,0,1)返回4,而不是SELECT null::integer + null::integer + 3 + 0 + 1;所做的null。当组中至少有一个增编为空时,是否有方法使函数和返回为空?这将与operator+的行为相一致,并对我的情况有所帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-16 11:00:15

您可以使用预期的行为创建自己的聚合:

代码语言:javascript
运行
复制
CREATE OR REPLACE FUNCTION sum_null(x anyelement, y anyelement)
RETURNS anyelement LANGUAGE sql AS $$
SELECT x + y ; $$ ;

CREATE OR REPLACE AGGREGATE sum_null(x anyelement)
( SFUNC = sum_null, STYPE = anyelement, INITCOND = 0) ;

参见[医]小提琴中的测试结果

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70377589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档