当前位置: 首页 > news >正文

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
部分行是NULLNULL值的总和NULL被自动排除
包含NULL+ 0与非NULL值相同0NULL不同,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处理语义。

http://www.jsqmd.com/news/344440/

相关文章:

  • SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
  • Vue 2.3
  • *Turnitin
  • 基于MATLAB的油润滑轴承压力分布求解
  • python学习一:变量python简单数据类型
  • 稀疏化压缩测试:神经架构搜索在模型精简的精度损失验证工具热度解析
  • 2026年遗产继承专业律师排名揭晓,冠腾律所李静律师口碑性价比双高 - 工业品牌热点
  • 《TAML》好文推荐 | 来自中国科学院力学研究所张磊博士 评估大语言模型在计算流体力学领域的知识利用、学习与创造
  • 深入解析:MySQL——增删改查操作
  • 空间智能 (Spatial Intelligence)
  • springboot基于Java的仓库管理系统(源码+文档+运行视频+讲解视频)
  • 基于 Starlight 文档站点接入 Microsoft Clarity 的完整实践指南
  • 建筑资质专业代办公司价格差异大天津广运达性价比高吗 - 工业设备
  • 2026年专业的喷绘喷印,写真喷印厂家实力推荐名录 - 品牌鉴赏师
  • 2026年阿里云Openclaw(clawdbot)秒级部署步骤
  • ‌碳信用计算工具:测试从业者如何用MLOps破解碳排放核算与交易‌
  • 横评后发现!王者级的一键生成论文工具 —— 千笔ai写作
  • 2026年回收手机价钱多少,哪种渠道更划算? - 京回收小程序
  • 2026灌流器厂家排名及发展趋势解析 - 品牌2025
  • springboot基于Java的茶叶销售商城系统(源码+文档+运行视频+讲解视频)
  • 深度测评9个降AI率网站,千笔·专业降AI率智能体解决论文AIGC检测难题
  • 肾病领域灌流器详解及相关厂家介绍 - 品牌2025
  • springboot基于java的餐厅美食信息管理系统(源码+文档+运行视频+讲解视频)
  • [Linux]学习笔记系列 -- [drivers][mmc]mmc_sd
  • 腾讯云Lighthouse 一键部署 OpenClaw 转化为专属股市分析师实战教程
  • 智能体
  • Linux 系统 定期更新硬件时钟(RTC)
  • 解决ORA-28002: the password will expire within 7 days
  • 解决程序连不上RabbitMQ:Attempting to connect to/access to vhost虚拟主机挂了的排错与恢复
  • 2026肝衰竭人工肝耗材优选健帆生物 - 品牌2025