Я хотел бы создать представление, которое возвращает месяцы суммарного количества осадков. Каждая строка, возвращаемая представлением, будет представлять месяц для данного года.Динамический пробег всего
В представлении я хотел бы включить столбец, который является совокупным дождем в течение года, так что в январе для января будет общий дождик для января этого года. Строки для февраля будут иметь общий итог дождя за Jan+Feb
того года, ряды для Мар будут иметь общий итог дождя за Jan+Feb+Mar
... и так далее до декабря декабря будет общий дождь в течение года.
Жесткая часть Я хотел был бы иметь возможность запросить представление на конкретную дату ex. «select * from vw_rain_stats where rain_date >= to_date('2010-MAR-01')
», а суммарный итоговый столбец должен начинаться с месяца, указанного в предложении where (март), а не в январе.
Я не хочу, чтобы ежемесячные дожди дождя до 2010 года-MAR-01 включались в данные, возвращаемые представлением.
Я могу разработать представление, которое накапливает amts в течение всего года, но я не могу понять, как разработать представление, чтобы оно могло начать накапливать amts в течение месяца, отличного от января.
Учитывая, что данные за январь 2012 года по февраль 2013 года в базовой таблице и за каждый месяц в этот период времени есть дождь (без нулевого дождя mths).
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 года не включены в результирующем или в running_amt кумулятивных значений. Это то, что я хочу.
Можете ли вы добавить быстрый образец формата таблицы и желаемого результата? –