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

Snowflake SQL实现:基于最新日期值填充新列

Snowflake SQL:将最新日期对应REC_COUNT值填充至全行列

解决方案1:使用窗口函数实现

无需额外子查询,直接通过窗口函数获取并广播最新日期的处理后值:

SELECT 
    PREVIOUS_DAY,
    REC_COUNT,
    -- 提取最新日期的REC_COUNT并移除逗号
    REPLACE(
        FIRST_VALUE(REC_COUNT) OVER (ORDER BY PREVIOUS_DAY DESC),
        ','
    ) AS FINAL_CLMN
FROM your_table_name;

解决方案2:使用CTE+交叉连接实现

通过公共表表达式单独获取最新日期的处理后值,再映射到所有行:

WITH latest_record AS (
    SELECT 
        REPLACE(REC_COUNT, ',') AS cleaned_latest_value
    FROM your_table_name
    ORDER BY PREVIOUS_DAY DESC
    LIMIT 1
)
SELECT 
    t.PREVIOUS_DAY,
    t.REC_COUNT,
    lr.cleaned_latest_value AS FINAL_CLMN
FROM your_table_name t
CROSS JOIN latest_record lr;

关键逻辑说明

  • REPLACE(REC_COUNT, ','):移除REC_COUNT中的千分位逗号,将格式化字符串转换为纯数字格式
  • 获取最新日期值:
    • 方案1中FIRST_VALUE(REC_COUNT) OVER (ORDER BY PREVIOUS_DAY DESC):按日期降序排序后,窗口函数会取第一行(最新日期)的REC_COUNT值,并自动广播到所有行
    • 方案2中ORDER BY PREVIOUS_DAY DESC LIMIT 1:直接筛选出最新日期的行,再通过CROSS JOIN将该值关联到原表每一行

输入输出示例

输入表数据:

PREVIOUS_DAY    REC_COUNT
2023-08-30      2,718
2023-08-29      2,713
2023-08-28      2,724
2023-08-24      2,723

执行SQL后输出:

PREVIOUS_DAY    REC_COUNT  FINAL_CLMN
2023-08-30      2,718      2718
2023-08-29      2,713      2718
2023-08-28      2,724      2718
2023-08-24      2,723      2718

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:13:27