any_value:返回某行的值
速查结论
any_value(expr[, isIgnoreNull]) 是 Spark SQL 中用于从一组行中任意返回某一行表达式值的聚合函数。
语法
any_value(expr[, isIgnoreNull])
参数说明
| 参数 | 说明 |
|---|---|
| expr | 任意表达式 |
| isIgnoreNull | 可选,布尔值。当为 true 时,仅返回非空值 |
示例
> SELECT any_value(col) FROM VALUES (10), (5), (20) AS tab(col);
10
> SELECT any_value(col) FROM VALUES (NULL), (5), (20) AS tab(col);
NULL
> SELECT any_value(col, true) FROM VALUES (NULL), (5), (20) AS tab(col);
5
常见报错与避坑指南
- 非确定性函数:该函数是非确定性的,每次调用可能返回不同的值,不可依赖其返回特定行。
- NULL 值陷阱:若不指定
isIgnoreNull = true,返回结果可能是 NULL(当某个输入行本身就是 NULL 时)。如果业务中需要忽略 NULL 值,务必显式传入true。
Since: 1.4.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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