样例数据如下,需要计算出每年每个账户的平均余额
要求如下:
例如用户1101,2015年度的平均余额计算为:((’2015-01-01‘ 到 '2015-01-02' 的天数)乘以 (上一个余额数600)加上 ( '2015-01-02' 到 今天的天数)乘以 -300)除以 (’2015-01-01‘ 到 今天的天数)
--account 账户
--cur_date 账户当前日期
--balance 账户当前日期的余额
create table test(account varchar(10),cur_date date,balance numeric);
insert into test values('1101','2014-12-02',600);
insert into test values('1101','2015-01-02',-300);
insert into test values('1102','2014-12-02',600);
insert into test values('1102','2014-12-30',-500);
insert into test values('1102','2015-01-02',-300);
insert into test values('1102','2015-02-01',200);
举个例子:假设每月30日,一年365日
2015-1-1 至 2015-1-31 = 200 * 30 = 6000 --账户在上一年度最后余额为200元
2015-2-1 至 2015-3-31 = 100 * 60 = 6000 --账户在2015-02-01当前余额为100元
2015-4-1 至 2015-6-21 = 1000 * 80 = 80000 --账户在2015-04-01当前余额为1000元
2015-6-22 至 2015-12-31 = 111 * 190 = 21090 --账户在2015-06-22当前余额为111元
年日均= (6000+6000+80000+21090)/365 = 309.84
但是以上有可能跨年,跨年时需要考虑上一年度的最后一个余额;
如果为当年的年份,那么最后日期计算到今天。
描述可以再清晰一点。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。