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

请求协助编写SQL查询以生成指定输出结果

请求协助编写SQL查询以生成指定输出结果

嘿,各位SQL大神,我现在遇到个需求,想请大家帮忙写个查询语句。我手里有这么一张输入表:

Start_datefuture_datecurrent valuefinished value
2020-01-012020-01-0110015
2020-01-012020-01-0215080
2020-01-012020-01-0320025
2020-01-012020-01-0430070
2020-01-012020-01-0540065

我的目标是生成一个中间输出,具体是要针对每个Start_date,按future_date的先后顺序,计算截至当天的累计完成量,同时算出当前值和累计完成量的差值(也就是剩余待完成的量)。最终输出需要包含原表的所有字段,再加上这两个计算出来的字段。

我自己试了下窗口函数,写了这么一段查询,大家看看有没有问题,或者有没有更优的写法:

SELECT 
    Start_date,
    future_date,
    `current value` AS current_value,
    `finished value` AS finished_value,
    SUM(`finished value`) OVER (PARTITION BY Start_date ORDER BY future_date) AS cumulative_finished,
    `current value` - SUM(`finished value`) OVER (PARTITION BY Start_date ORDER BY future_date) AS remaining_value
FROM 
    your_table;

这里我用了SUM() OVER()窗口函数,按Start_date分组,再按future_date排序,这样就能逐天累计完成量了。另外因为字段名里有空格,所以用反引号把字段名括起来了(如果是MySQL的话),要是其他数据库比如PostgreSQL,可能需要用双引号。

如果我的理解和你实际的中间输出需求不一样,麻烦把具体的输出格式和逻辑补充说明下,我再调整查询语句~

备注:内容来源于stack exchange,提问作者Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:59:38