news 2026/10/22 9:44:04

postgreq sum(a) 如果a有null值会有什么影响

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
postgreq sum(a) 如果a有null值会有什么影响

PostgreSQL 中,使用SUM(a)时如果列a包含NULL值,其行为如下:

核心行为

SUM函数会自动忽略NULL值,不会将其视为 0 参与计算。

sql

复制

-- 示例数据 CREATE TABLE test (a INT); INSERT INTO test VALUES (1), (2), (NULL), (3); -- 查询 SELECT SUM(a) FROM test; -- 结果: 6 (即 1+2+3,NULL 被忽略)

关键点

表格

复制

场景结果说明
所有行都是NULLNULL没有可累加的值,返回NULL
部分行是NULL非NULL值的总和NULL被自动排除
包含NULL+ 0与非NULL值相同0和NULL不同,0会计入,NULL不会

需要注意的情况

1. 全 NULL 返回 NULL

sql

复制

SELECT SUM(a) FROM test WHERE a IS NULL; -- 结果: NULL

2. 与 COUNT 的区别

sql

复制

-- SUM 忽略 NULL SELECT SUM(a), -- 6 COUNT(a), -- 3 (忽略 NULL) COUNT(*) -- 4 (包含 NULL) FROM test;

3. 如果需要将 NULL 视为 0

sql

复制

-- 使用 COALESCE SELECT SUM(COALESCE(a, 0)) FROM test; -- 结果仍然是 6,但语义更清晰 -- 或者在过滤时处理 SELECT SUM(a) FROM test WHERE a IS NOT NULL;

标准符合性

这种行为符合SQL 标准—— 聚合函数(SUM,AVG,MAX,MIN等)都会忽略NULL值,只有COUNT(*)会统计所有行。

⚠️ 注意:这与编程语言中null + number的行为不同,SQL 聚合函数有专门的NULL处理语义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 10:22:49

相机标定原理与概念(先搞懂再动手)

以下是一份完整的相机标定教程(中文版),专为工业视觉(机器视觉)初学者和实际项目开发者设计。内容基于 Halcon、OpenCV 和 MVTec 官方文档 工业产线真实经验,涵盖原理、步骤、代码示例、常见问题及解决办法…

作者头像 李华
网站建设 2026/10/13 20:57:03

‌碳信用计算工具:测试从业者如何用MLOps破解碳排放核算与交易‌

双碳目标下的测试新战场‌ 随着国家双碳目标(2030碳达峰、2060碳中和)的推进,MLOps流水线碳排放工具成为企业刚需,公众号相关话题热度飙升——数据显示,讨论开源碳核算工具的帖子阅读量同比增长120%,主要因…

作者头像 李华
网站建设 2026/10/21 6:26:50

*Grammarly

Grammarly是一个AI驱动的英文写作助手,你可以把它理解为一位24小时在线、精通英文语法和风格的“随身校对编辑”。它能在你写邮件、报告或论文时实时检查并给出优化建议。 它能做什么:从“纠错”到“预测反馈” 它的核心能力已经从基础的语法检查&…

作者头像 李华
网站建设 2026/10/21 1:17:55

Microsoft Editor

Microsoft Editor是微软推出的写作辅助工具,它内置于Word、Outlook等Office软件,也提供浏览器扩展。要理解它的价值,可以把它想象成一个随时在线的、具备良好职业素养的“文稿助理”。这位助理不会直接替你写,而是安静地在你身边&…

作者头像 李华
网站建设 2026/10/19 16:38:59

【Matlab】MATLAB if分支语句详解:单/多条件判断案例及实战应用

MATLAB if分支语句详解:单/多条件判断案例及实战应用 在MATLAB编程中,分支语句是实现逻辑判断与流程控制的核心语法,其中if分支语句应用最广泛,可根据预设条件的真假,执行不同的代码逻辑,适配从简单条件判断到复杂多场景决策的各类需求。if分支语句主要分为单条件判断、…

作者头像 李华