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

求编写SQL实现按年度对Applications列累计求和的查询语句

实现MySQL按年度分组的Applications累计求和

没问题,我帮你搞定这个累计求和的需求!先把你的需求和数据理清楚:

原始数据表

Week Year Applications
1 2017 0
2 2017 10
3 2017 20
4 2017 50
5 2017 0
1 2018 10
2 2018 0
3 2018 40
4 2018 50
5 2018 10

期望输出结果

Week Year Applications
1 2017 0
2 2017 10
3 2017 30
4 2017 80
5 2017 80
1 2018 10
2 2018 10
3 2018 50
4 2018 100
5 2018 110

对应的SQL查询语句

如果你的MySQL版本是8.0及以上,推荐用窗口函数来实现,简洁又高效:

SELECT 
    Week,
    Year,
    SUM(Applications) OVER (PARTITION BY Year ORDER BY Week) AS Applications
FROM 
    your_table_name  -- 替换成你的实际表名
ORDER BY 
    Year, Week;

语句说明

  • PARTITION BY Year:把数据按年度拆分,确保累计求和只在同一年度内进行,不会跨年度计算
  • ORDER BY Week:保证每组内按周数顺序累加,每一行的结果是当前周及之前所有周的Applications总和
  • 最后的ORDER BY Year, Week是为了让输出顺序和你期望的一致

兼容旧版本MySQL的方案(低于8.0)

如果你的MySQL不支持窗口函数,可以用自连接的方式实现:

SELECT 
    t1.Week,
    t1.Year,
    SUM(t2.Applications) AS Applications
FROM 
    your_table_name t1
JOIN 
    your_table_name t2 ON t1.Year = t2.Year AND t2.Week <= t1.Week
GROUP BY 
    t1.Year, t1.Week
ORDER BY 
    t1.Year, t1.Week;

这个逻辑是把每一行数据和同年度内周数小于等于它的所有行做连接,再对连接后的Applications字段求和,同样能得到累计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:39:50