SQL:年月底?

时间:2018-12-18 07:55:27

标签: sql

我有一个数据集,格式为:Date Amount,例如:

Date       Amount
2018-01    100
2018-02    200
2018-03    300

我希望在每个月末为止的年度总和得出:

Date       Amount
2018-01    100
2018-02    300 (100+200)
2018-03    600 (100+200+300)

我该如何参考上一行中的上一年至今的总和?

4 个答案:

答案 0 :(得分:1)

您可以使用窗口功能执行此操作:

select date,
       sum(amount) over (order by date) as so_far
from the_table
order by date;

以上是ANSI标准SQL

答案 1 :(得分:0)

您需要为此使用“运行总计”。

UIImageView

答案 2 :(得分:0)

您可以使用(function($){ $.extend({ alertme: function(options){ var defaults = { container: "body", background: "yellow" }; var opts = $.extend( {}, defaults, options ); $divContent =$(opts.container).append('<div>abc</div>'); $divContent.prop('class','divclass'); } }); })(jQuery); 子句。尝试如下。

如果要按以下方式分别分隔每年的累计总数,请使用OVER

PARTITION BY DATEPART(yy, Date)

或者,如果您想获得所有年份的累计总数,请删除SELECT Date, Amount, SUM(Amount) OVER (PARTITION BY DATEPART(yy, Date) ORDER BY DATEPART(mm, Date)) AS CumulativeTotal FROM Table 部分。只需订购即可。

PARTITION BY DATEPART(yy, Date)

有关更多信息,请参考此内容。 Producing a moving average and cumulative total

答案 3 :(得分:0)

其他选项将使用相关子查询:

select t.*,
       (select sum(t1.amount) from table t1 where t1.date <= t.date) as amount
from table t;

这几乎可以在所有 DBMS 中使用。