跳到主要内容

min_by:按最小值关联取值

速查结论

min_by(x, y) 是 Spark SQL 中用于返回与 y 的最小值相关联的 x 值的函数。

语法

min_by(x, y)

参数说明

参数说明
x要返回的值所在的列或表达式
y用于确定最小值的列或表达式。函数会找到 y 的最小值,然后返回对应的 x 值

示例

> SELECT min_by(x, y) FROM VALUES ('a', 10), ('b', 50), ('c', 20) AS tab(x, y);
a

常见报错与避坑指南

  • 并列最小值:当 y 的最小值对应多行时,min_by() 返回其中某一行的 x 值,但结果是非确定性的(可能受数据分布和 shuffle 影响)。
  • NULL 值处理min_by() 会忽略 y 为 NULL 的行。如果所有行的 y 都是 NULL,则返回 NULL。
  • 与窗口函数对比min_by() 是聚合函数,作用于整个分组。如果需要保留每行并找到关联值,请使用窗口函数结合 FIRST_VALUE

Since: 3.0.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

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

交流微信二维码

你可能还想看