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

SparkSQL 聚合函数 MAX 对 NULL 值的处理

SparkSQL 聚合函数 MAX 对 NULL 值的处理

官网:https://spark.apache.org/docs/4.0.0/sql-ref-functions.html

https://spark.apache.org/docs/4.0.0/sql-ref-null-semantics.html#builtin-aggregate-expressions

在这里插入图片描述

MAX(column) 会自动忽略 NULL 值,只在非空值中寻找最大值。

  • 如果整列都是 NULL,则返回 NULL
  • 如果列中只有部分为 NULL,不影响最大值的计算。

Demo:

WITH data AS (SELECT * FROM VALUES(10),(20),(NULL)AS tab(col)
)
SELECT max(col) AS max_value FROM data;
-- 找到最大值 30,忽略所有 NULL 值。

在这里插入图片描述


WITH data AS (SELECT * FROM VALUES(NULL),(NULL),(NULL)AS tab(col)
)
SELECT max(col) AS max_value FROM data;
-- 没有任何有效值时,MAX() 返回 NULL。

在这里插入图片描述


MAX() 也适用于字符串。

WITH data AS (SELECT * FROM VALUES('apple'),('banana'),(NULL),('cherry')AS tab(col)
)
SELECT max(col) AS max_value FROM data;
-- 字符串按照字典顺序排序,'cherry' 是最大的。

在这里插入图片描述


其它聚合函数:

函数如何处理 NULL
MAX(col)忽略 NULL,找最大值;全为 NULL 返回 NULL
MIN(col)忽略 NULL,找最小值;全为 NULL 返回 NULL
SUM(col)忽略 NULL,加总非空值;全为 NULL 返回 NULL
AVG(col)忽略 NULL,计算平均值;全为 NULL 返回 NULL
COUNT(col)只统计非 NULL 数量
COUNT(*)统计所有行数,包含 NULL

Spark官方对于各种函数处理null值的说明:

https://spark.apache.org/docs/4.0.0/sql-ref-null-semantics.html

在这里插入图片描述

http://www.xdnf.cn/news/1175023.html

相关文章:

  • Linux -- 进程【下】
  • Python Day22 - 复习日
  • 如何用 Kafka + Redis + 线程池搭建高吞吐异步消息处理架构
  • 数据结构自学Day13 -- 快速排序--“前后指针法”
  • 西门子 S7-1500分布式 I/O通信 :PROFINET IO 与 PROFIBUS DP详解(下)
  • 电流、电压采集电路分析
  • 轻量化RTSP视频通路实践:采集即服务、播放即模块的工程解读
  • 【Windows命令手册】Windows中的常用命令,并与 Linux 做比较
  • Zookeeper学习专栏(七):集群监控与管理
  • FastGPT + Kymo:解锁企业专属知识库与智能体开发新体验
  • 【LeetCode 热题 100】78. 子集——(解法二)回溯+选哪个
  • Unity × RTMP × 头显设备:打造沉浸式工业远控视频系统的完整方案
  • AI营销核心技术解析:运作机制与行业应用实例
  • 炬森精密:缓冲滑轨的创新力量,重塑家居静音与安全新体验
  • 力扣MySQL(1)
  • 解构未来金融:深入剖析DeFi与去中心化交易所(DEX)的技术架构
  • 力扣(LeetCode) ——轮转数组(C语言)
  • Linux 723 磁盘配额 限制用户写入 quota;snap快照原理
  • GraphQL批量查询优化:DataLoader如何让数据库访问速度飞起来?
  • Android 测试全指南:单元测试与UI测试框架详解
  • 用马尔可夫模型进行自动驾驶安全分析
  • Docker Desktop 打包Unity WebGL 程序,在Docker 中运行Unity WebGL 程序
  • 【Linux系统编程】基础指令
  • MYSQL 笔记3
  • 天津大学陈亚楠教授团队 ACS AEM:焦耳热超快合成非平衡态能源材料——毫秒级制备与跨体系性能突破
  • 2025-07-23vscode+cline使用笔记
  • springcloud环境和工程搭建
  • AI 驱动与数字化技术双突破!华南Formnext展3D 打印开启智能制造新场景
  • 基于Seata的微服务分布式事务实战经验分享
  • 策略模式(Strategy Pattern)+ 模板方法模式(Template Method Pattern)的组合使用