mode:返回众数
速查结论
mode(col) 是 Spark SQL 中用于**返回列中出现频率最高的值(众数)**的函数。
语法
mode(col)
参数说明
| 参数 | 说明 |
|---|---|
| col | 要计算众数的列或表达式,支持数值和 ANSI 间隔类型 |
示例
> SELECT mode(col) FROM VALUES (0), (10), (10) AS tab(col);
10
> SELECT mode(col) FROM VALUES (INTERVAL '0' MONTH), (INTERVAL '10' MONTH), (INTERVAL '10' MONTH) AS tab(col);
0-10
> SELECT mode(col) FROM VALUES (0), (10), (10), (null), (null), (null) AS tab(col);
10
常见报错与避坑指南
- NULL 值处理:
mode()自动忽略 NULL 值。即使 NULL 值出现次数最多(如第三个示例),函数仍返回非空值中的众数。 - 全 NULL 或无行:如果所有值都是 NULL,或者结果集中没有行,
mode()返回 NULL。 - 多众数情况:当多个值以相同的最多频率出现时,
mode()返回其中一个值,但结果是非确定性的。
Since: 3.4.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
