我有一个数据集,格式为: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)
我该如何参考上一行中的上一年至今的总和?
答案 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 中使用。