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

Snowflake SQL用PARTITION BY基于列最后非空值取相邻列值方案

解决方案

你可以直接使用Snowflake窗口函数LAG的IGNORE NULLS参数实现需求,无需嵌套子查询,单条SELECT语句即可完成:

SELECT 
  *
  , LAG(CASE WHEN R = 'Y' THEN T END) IGNORE NULLS OVER (PARTITION BY ID ORDER BY T) AS GOAL
FROM 你的表名;

逻辑说明:

  • 先用CASE WHEN R = 'Y' THEN T END构造临时计算值:只有R为Y的行返回对应T值,其余行返回NULL
  • LAG(...) IGNORE NULLS会跳过所有NULL值,取当前行之前最近一个非空的T值
  • PARTITION BY ID按ID分组处理,ORDER BY T保证按T的升序顺序匹配上一个有效值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:15:00