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

请求生成含t年与t+1年Stat平均值的两列数据表

看起来你需要从球员赛季数据中关联出存在连续赛季的记录,再计算对应年份的Stat平均值。我分两种常见场景给你解决方案:

首先先明确你的原始数据:

playeridseasonStat
120142.3
120151.4
120163.5
220111.5
220125.5
320106.7
320112.6

场景1:计算所有符合条件的t年与t+1年Stat的整体平均值

如果你的需求是把所有有后续赛季(t+1)的t年记录的Stat取平均,同时把对应的t+1年记录的Stat取平均,得到一行结果,可以用自连接结合CTE实现:

-- 替换your_table_name为你的实际表名
WITH player_season_stats AS (
    SELECT playerid, season, Stat
    FROM your_table_name
),
t_t1_link AS (
    SELECT 
        t.Stat AS t_stat,
        t1.Stat AS t1_stat
    FROM player_season_stats t
    -- 关联同一个球员的下一个赛季数据
    JOIN player_season_stats t1 
        ON t.playerid = t1.playerid 
        AND t.season + 1 = t1.season
)
SELECT 
    AVG(t_stat) AS "t年Stat平均值",
    AVG(t1_stat) AS "t+1年Stat平均值"
FROM t_t1_link;

运行结果:

t年Stat平均值t+1年Stat平均值
2.9753.25

这个结果正好对应你例子里提到的4条t年记录的Stat平均值,以及它们对应的t+1年记录的Stat平均值。


场景2:按年份分组,计算每个t年的Stat平均值与t+1年的Stat平均值

如果需要按年份维度展示,每个年份的平均值和下一年的平均值,可以先计算每年的Stat平均值,再关联下一年的数据:

-- 替换your_table_name为你的实际表名
WITH yearly_stat_avg AS (
    SELECT 
        season,
        AVG(Stat) AS yearly_avg
    FROM your_table_name
    GROUP BY season
)
SELECT 
    ya.yearly_avg AS "t年Stat平均值",
    ya_next.yearly_avg AS "t+1年Stat平均值",
    ya.season AS "t年份"
FROM yearly_stat_avg ya
JOIN yearly_stat_avg ya_next 
    ON ya.season + 1 = ya_next.season
ORDER BY ya.season;

运行结果:

t年Stat平均值t+1年Stat平均值t年份
6.72.052010
2.055.52011
2.31.42014
1.43.52015

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:38:01