我想创建一个视图,返回雨水总计的月份。视图返回的每一行代表给定年份的一个月份。动态运行总计
在这个观点中,我想列出一年中累计降雨量的一列,例如1月份的一排会有1月份的降雨总量。 2月份的排的总数为Jan+Feb
,Mar的排的总数为Jan+Feb+Mar
,等等,直到12月份为止。
困难的是我希望能够查询特定日期的视图 前。 “select * from vw_rain_stats where rain_date >= to_date('2010-MAR-01')
”,累计总额列应从where子句(3月)中指定的月份开始累计,而不是1月。
我不希望2010年3月 - 01月之前的任何月雨量都包含在视图返回的数据中。
我可以开发一个视图,累积整个年份的债券,但我无法弄清楚如何开发视图,以便它可以开始累计一月以外的债券。
由于2012年1月至2013年2月的数据存在于基础表格中,并且该时间段内每个月都有一些降雨(无零月降雨)。
create table rain_stats (rain_date date, amt number);
insert into rain_stats values ('2012-JAN-01', 50);
insert into rain_stats values ('2012-FEB-01', 10);
insert into rain_stats values ('2012-MAR-01', 20);
insert into rain_stats values ('2012-APR-01', 40);
insert into rain_stats values ('2012-MAY-01', 30);
insert into rain_stats values ('2012-JUN-01', 10);
insert into rain_stats values ('2012-JUL-01', 4);
insert into rain_stats values ('2012-AUG-01', 100);
insert into rain_stats values ('2012-SEP-01', 5);
insert into rain_stats values ('2012-OCT-01', 100);
insert into rain_stats values ('2012-NOV-01', 90);
insert into rain_stats values ('2012-DEC-01', 80);
insert into rain_stats values ('2013-JAN-01', 30);
insert into rain_stats values ('2013-FEB-01', 7);
用户执行该查询
select * from vw_rain_stats where rain_date >= '2012-MAY-01'
这是一种返回的结果;
| RAIN_DATE | AMT | RUNNING_AMT | ------------------------------------------ | May, 01 2012 | 30 | 30 | | Jun, 01 2012 | 10 | 40 | | Jul, 01 2012 | 4 | 44 | | Aug, 01 2012 | 100 | 144 | | Sep, 01 2012 | 5 | 149 | | Oct, 01 2012 | 100 | 249 | | Nov, 01 2012 | 90 | 339 | | Dec, 01 2011 | 80 | 419 | | Jan, 01 2013 | 30 | 30 | | Feb, 01 2013 | 70 | 100 | | .................. | ... | ........... |
请注意,2012年1月至4月的雨量未包含在结果集或running_amt累积值中。这就是我想要发生的事情。
您可以添加表格格式和所需输出的快速样本吗? –