我目前有一个查询,它计算每月total Purchase cost
、和Total Sales Price
,然后将其显示在图表上。查询看起来像Profit
Mark up
SELECT SUM(SaleTotal) AS TotalSalePrice, SUM(CostTotal) AS
TotalPurchaseCost, SUM(Profit) AS Profit, MONTHNAME(CollectionDate) AS Month, ((SUM(Profit ) / SUM(DriverTotal)) * 100) AS Markup
FROM TableA
Order BY CollectionDate
我想创建另一个类似的查询,它返回monthly cumulative result
总成本、总销售价格和利润
因此,如果上述查询返回的数字
月 | 总销售成本 | 总购买成本 | 利润 | 标记 |
---|---|---|---|---|
一月 | 200英镑 | 100 英镑 | 100 英镑 | 100% |
二月 | 400英镑 | 300英镑 | 100 英镑 | 33% |
行进 | 300英镑 | 175英镑 | 125英镑 | 71% |
四月 | 500英镑 | 380英镑 | 120英镑 | 32% |
我想要一个将返回以下内容的查询(请注意末尾的 2 个新列
月 | 总销售成本 | 总购买成本 | 利润 | 标记 | 累计销售价格 | 累计利润 |
---|---|---|---|---|---|---|
一月 | 200英镑 | 100 英镑 | 100 英镑 | 100% | 200英镑 | 100 英镑 |
二月 | 400英镑 | 300英镑 | 100 英镑 | 33% | 600英镑 | 200英镑 |
行进 | 300英镑 | 175英镑 | 125英镑 | 71% | 900英镑 | 325英镑 |
四月 | 500英镑 | 380英镑 | 120英镑 | 32% | 1400英镑 | 445英镑 |
本质上是将当前月份的总数添加到前几个月的总数中
任何人都可以帮助调整当前查询以包含最后两列
您可以用作
SUM OVER
累积窗口函数。请注意,这是在正常聚合后计算的,因此您可以这样做SUM(SUM(...)) OVER (...
注意使用正确的分组结构。不要依赖 MySQL 的特殊方法来显示不在
GROUP BY
.