如何在 SQL 中使用 group by 运行 sum?
Posted
技术标签:
【中文标题】如何在 SQL 中使用 group by 运行 sum?【英文标题】:How to do running sum with group by in SQL? 【发布时间】:2018-06-13 12:19:47 【问题描述】:现在我有一个如下表
Date Promotion campaign Visit Orders Revenue
2018-06-01 Promotion01 200 5 1000
2018-06-01 Promotion02 250 10 1100
2018-06-02 Promotion01 220 8 1350
2018-06-03 Promotion03 300 15 2000
...
我想生成一个显示累积数字的表格,例如
Date Visit Orders Revenue
2018-06-01 450 15 2100
2018-06-02 670 23 3450
2018-06-03 970 38 5450
我首先知道我可能必须使用按函数分组并按日期分组数据,然后如何计算 3 列的运行总和?
dw 是亚马逊红移。非常感谢您提前提供的帮助!
【问题讨论】:
这里有 2109 个使用搜索短语[sql] running total
的现有帖子,1212 个使用搜索短语 [sql] running sum
的帖子。这些都没有给你足够的信息来至少尝试自己解决它?
是的,我尝试了group by和lag功能,但数字不正确,任务有点匆忙,所以我跳过了我自己做的试验并尝试在发现潜在错误之前尽快解决它。但我明白你的意思
【参考方案1】:
您可以使用聚合和窗口函数:
select date, sum(visit) as visit, sum(orders) as orders,
sum(revenue) as revenue,
sum(sum(revenue)) over (order by date) as running_revenue
from t
group by date
order by date;
【讨论】:
以上是关于如何在 SQL 中使用 group by 运行 sum?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 T-SQL 中使用 group by 和 union