【问题标题】:Add a running total/cumulative column添加运行总计/累积列
【发布时间】:2017-03-07 22:30:57
【问题描述】:

我试图在我的表中获得 2015 年每个 Actual_Sale_Date 的销售总数,但到目前为止我所有的尝试都是徒劳的。我查看了附加的链接并模拟了该过程,但没有任何收获。有人可以帮忙吗?

Calculating Cumulative Sum in PostgreSQL

select Actual_Sale_Date, extract(week from Actual_Sale_Date) as week_number, 
count(*) from mytable
where extract(year from Actual_Sale_Date) = 2015

结果:(请求的 Running_Total)

 Actual_Sale_Date         week_number          count           running_total
2015-01-04 00:00:00           1                  1                 1
2015-01-06 00:00:00           2                  3                 4
2015-01-08 00:00:00           2                  4                 8
2015-01-09 00:00:00           2                  5                 13
2015-01-11 00:00:00           2                  1                 14
2015-01-15 00:00:00           3                  2                 16
2015-01-21 00:00:00           4                  1                 17
2015-01-23 00:00:00           4                  4                 21
2015-01-24 00:00:00           4                  1                 22
2015-01-26 00:00:00           5                  2                 24

【问题讨论】:

  • 我会为该表设置别名,然后对子查询执行一些操作,该子查询将计数累计到该行的销售日期。

标签: sql postgresql


【解决方案1】:

只使用窗口函数:

select Actual_Sale_Date, extract(week from Actual_Sale_Date) as week_number, 
       count(*),
       sum(count(*)) over (order by Actual_Sale_Date)
from ??
where extract(year from Actual_Sale_Date) = 2015
group by Actual_Sale_Date, extract(week from Actual_Sale_Date);

【讨论】:

    猜你喜欢
    • 2021-12-09
    • 2019-10-07
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多