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

基于Snowflake SQL用线性回归函数计算Nov-22/Dec-22趋势

问题

我需要基于给定的Mar-22至Oct-22的x(1-8)与y值数据,计算x=9(Nov-22)和x=10(Dec-22)的趋势值,请问能否使用SQL线性回归函数实现该需求?

示例数据

with
data_table(month, x, y) as
(
    select * from values
      ('Mar-22',1 ,7894),
      ('Apr-22',2 ,7964),
      ('May-22',3 ,8016),
      ('Jun-22', 4, 8005),
      ('Jul-22', 5, 8063),
      ('Aug-22', 6, 8101),
      ('Sep-22', 7, 8101),
      ('Oct-22', 8, 8204)
)
SELECT * FROM data_table;

期望输出

MonthOrderAmountTrend
Mar-22178947937.622222
Apr-22279647983.272222
May-22380168028.922222
Jun-22480058074.572222
Jul-22580638120.222222
Aug-22681018165.872222
Sep-22781018211.522222
Oct-22882048257.172222
Nov-22983058302.822222
Dec-2210-8348.472222

解决方案

可以,你可以利用SQL的REGR_SLOPE(计算回归斜率)和REGR_INTERCEPT(计算回归截距)这两个线性回归聚合函数来实现需求。线性回归的核心公式为:趋势值 = 截距 + 斜率 × x,通过这两个函数得到全局的斜率和截距后,就能为已知x和待预测的x计算对应的趋势值。

完整SQL代码

with
data_table(month, x, y) as
(
    select * from values
      ('Mar-22',1 ,7894),
      ('Apr-22',2 ,7964),
      ('May-22',3 ,8016),
      ('Jun-22', 4, 8005),
      ('Jul-22', 5, 8063),
      ('Aug-22', 6, 8101),
      ('Sep-22', 7, 8101),
      ('Oct-22', 8, 8204)
),
-- 计算线性回归的斜率和截距参数
regression_params as (
    select
        regr_slope(y, x) as slope,
        regr_intercept(y, x) as intercept
    from data_table
),
-- 合并原有数据与待预测的x值(9和10)
all_records as (
    select month, x, y from data_table
    union all
    select 'Nov-22', 9, null union all
    select 'Dec-22', 10, null
)
select
    month as "Month",
    x as "Order",
    -- 原有数据保留原始y值,预测数据用趋势值填充(与示例输出对齐)
    coalesce(y, round(intercept + slope * x, 6)) as "Amount",
    round(intercept + slope * x, 8) as "Trend"
from all_records, regression_params
order by x;

代码说明

  1. regression_params:基于全部样本数据,计算y关于x的线性回归斜率和截距,这两个参数是全局唯一的。
  2. all_records:将原始数据与需要预测的x=9(Nov-22)、x=10(Dec-22)的记录合并,预测记录的y值设为null。
  3. 最终查询:通过线性回归公式计算每个x对应的趋势值;对于原始数据,保留其y值作为Amount;预测数据则用计算出的趋势值填充Amount列,最后按x排序输出结果。

执行该代码后,即可得到与期望格式一致的输出,包含原有数据的趋势值以及Nov-22、Dec-22的预测趋势值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:12:14