You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

长表转宽表场景中MAX聚合函数的工作原理探究

长表转宽场景中MAX聚合函数的工作原理

在这个长表转宽的场景里,MAX函数的核心作用是过滤NULL值,提取分组内的有效数据,具体工作流程可以拆成这几步:

  • 首先,SQL里会用CASE语句对长表的行数据做判断:比如按指标类别给不同的宽表列赋值,不匹配的行就返回NULL。比如长表里一行是"身高",那对应height列赋值,其他列(比如体重、年龄)就返回NULL。
  • 接着按分组字段(比如用户ID)做分组聚合,这时候每个分组里,每个宽表列对应的行里只有一个非NULL值,剩下的都是NULL。
  • MAX聚合函数的特性是忽略NULL值,只从非NULL值里取最大值。而这里每个分组的每个宽表列只有一个有效非NULL值,所以MAX就会直接把这个值保留下来,最终得到每行对应所有指标的宽表结构。

举个简单的例子,假设分组后某用户的行数据是:

user_idheightweight
1175NULL
1NULL65

用MAX聚合后,就会得到:

user_idmax(height)max(weight)
117565

本质上就是利用MAX忽略NULL的特性,把分组内分散在不同行的有效数据,合并到同一行的对应列里。

内容的提问来源于stack exchange,提问作者hoozr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 06:03:11