首页 > 解决方案 > 如何在 SQL 中使用 group by 运行 sum?

问题描述

现在我有一个如下表

    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 是亚马逊红移。非常感谢您提前提供的帮助!

标签: sqlgroup-byamazon-redshift

解决方案


您可以使用聚合和窗口函数:

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;

推荐阅读