如何在SQL中使用group by运行sum?

如何在SQL中使用group by运行sum?,sql,group-by,amazon-redshift,Sql,Group By,Amazon Redshift,现在我有一张如下的桌子 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

现在我有一张如下的桌子

    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 
我知道首先我可能必须使用group by函数并按日期对数据进行分组,然后如何计算3列的运行总和


dw是亚马逊红移。非常感谢您的帮助

您可以使用聚合和窗口功能:

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;

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

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;

这里有2109篇文章使用搜索短语
[sql]运行total
,1212篇文章使用搜索短语
[sql]运行sum
。这些都没有给你足够的信息,至少让你自己尝试解决这个问题?是的,我尝试了group by和lag函数,但是这个数字不正确,任务有点仓促,这就是为什么我没有提到我自己做的试验,而是在发现潜在错误之前尽快解决它。但我明白你的意思,这里有2109篇文章使用搜索短语
[sql]运行total
,1212篇文章使用搜索短语
[sql]运行sum
。这些都没有给你足够的信息,至少让你自己尝试解决这个问题?是的,我尝试了group by和lag函数,但是这个数字不正确,任务有点仓促,这就是为什么我没有提到我自己做的试验,而是在发现潜在错误之前尽快解决它。但我明白你的意思