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

Snowflake按Group分区计算Next与Current列的差值

按分组计算Next与Current差值的解决方案

原始数据

GroupDateCurrentNext
A03/09/202047
A04/09/202024
A05/09/20204null
B17/08/202049
B19/08/20204null

澄清误区

你对窗口函数的理解存在偏差:窗口函数并非只能搭配SUM、COUNT、MAX、MIN这类聚合函数使用,但针对你的需求,其实完全不需要窗口函数。

直接计算Next - Current时,是逐行独立执行的,不会把整个数据集视为一组——每行的Next和Current都属于当前行所在的分组,计算结果自然会按组呈现。

实现SQL

以MySQL为例,执行以下查询即可得到目标结果:

SELECT 
  `Group`,
  Date,
  Current,
  Next,
  -- 当Next为null时返回null,否则计算差值
  CASE WHEN Next IS NOT NULL THEN Next - Current ELSE NULL END AS Diff
FROM your_table;

最终输出

GroupDateCurrentNextDiff
A03/09/2020473
A04/09/2020242
A05/09/20204nullnull
B17/08/2020495
B19/08/20204nullnull

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:54:22