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

Lag函数自定义逻辑输出异常:结果不符预期的技术问询

问题分析与修正方案

原SQL的问题

  1. 错误使用LAG()函数:LAG(Value)仅获取上一行的数值,无法跟踪需要持续保留的基准值(直到遇到更小值才更新)。
  2. 未定义列引用:AGE_TO_ULTIMATE_NO是未定义的列,应为Value的笔误。
  3. CASE逻辑错误:原逻辑错误比较相邻行数值,未实现"保留基准值直到更小值出现"的需求。

修正后的SQL

SELECT
    Id,
    Value,
    MIN(Value) OVER (PARTITION BY "Key" ORDER BY Id) AS New_Value
FROM
    your_table_name;

逻辑说明

  • MIN(Value) OVER (PARTITION BY "Key" ORDER BY Id)会计算每个Key分组内,按Id排序的运行最小值:
    • 第一行的运行最小值就是自身数值,作为初始基准。
    • 后续行若当前数值大于等于当前基准(运行最小值),则基准保持不变;若当前数值更小,运行最小值会更新为该更小值,成为新的基准。
    • 此逻辑完全匹配需求:以第一个数值为基准,后续大于基准则沿用基准,小于基准则使用当前值并更新基准。

验证结果

执行上述SQL后,输出将与期望结果完全一致:

编号(Id)数值(Value)新数值(New Value)
11.0062121.006212
21.0062411.006212
31.0078611.006212
41.0088581.006212
51.0087881.006212
61.0088581.006212
71.0086391.006212
81.005121.00512
91.003121.00312

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:55:24