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

按ID和日期计算年度生产增长量的SQL查询问题排查

SQL语句问题排查与修正

问题根源

原SQL语句的核心问题在于窗口函数未按ID进行分区:

  • 语句中sum(count(productionID)) over (order by date)没有添加partition by ID,导致计算累计生产值时,会把ID=1和ID=104的所有数据混在一起累加,而非各自独立计算,这直接造成ID=104的结果不符合预期。
  • 额外问题:最终排序order by ID, Date desc与窗口函数内的order by date(默认升序)逻辑冲突,会导致结果展示顺序和累计计算的时间顺序不一致,容易造成误解。

修正后的SQL语句

select top 100 
    ID, 
    Date, 
    count(productionID) as Daily_Production_Count,
    sum(count(productionID)) over (partition by ID order by Date) as Annual_Production
from Production_Table
where ID in (1, 104)
group by ID, Date
order by ID, Date;

修正说明

  1. 添加partition by ID:让窗口函数的累计计算严格限定在同一个ID的分组内,确保不同ID的生产数据各自独立累加,解决ID=104的计算错误问题。
  2. 增加字段别名:给count(productionID)添加Daily_Production_Count别名,使结果集的字段含义更清晰。
  3. 统一排序逻辑:将最终排序改为order by ID, Date(升序),与窗口函数内的时间排序方向一致,保证累计值是按时间从早到晚逐步累加,符合年度生产增长量的计算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:09:22