Fishbowl环境下无新表、Partition、CTE实现SQL累计求和
Fishbowl环境下按PART分组计算QTY累计值的可行方案
由于Fishbowl不支持窗口函数、CTE、临时表及变量声明,只能通过自连接+聚合函数的方式实现分组累计求和,核心逻辑是将表与自身关联,筛选出当前行及更早的同PART记录,再对QTY进行求和。
具体SQL语句
SELECT t1.PART, t1.DATE, t1.QTY, SUM(t2.QTY) AS QTYcumul FROM your_table_name t1 JOIN your_table_name t2 ON t1.PART = t2.PART AND t2.DATE <= t1.DATE GROUP BY t1.PART, t1.DATE, t1.QTY ORDER BY t1.PART, t1.DATE;
注意事项
- 替换语句中的
your_table_name为实际表名 - 确保
DATE列是标准日期类型,若为字符串格式需保证其排序逻辑符合时间先后顺序 - 若同一PART、同一DATE存在多条记录,该逻辑会将当天所有QTY计入累计,符合常规累计需求
- 数据量较大时可能存在性能损耗,这是该方法的固有局限,但在Fishbowl的限制下是唯一可行方案
内容的提问来源于stack exchange,提问作者Sophia Jones
相关产品推荐
相关产品推荐

