Трудно отладить «это не работает», если вы не объясните что не работает.
Глядя на то, что вы опубликовали, и если вы используете Oracle (поскольку вы его отметили), то DATE
- недопустимое имя столбца, поскольку оно зарезервировано для типа данных. Если это исправлено (вместо этого я использовал datum
имя столбца), запрос возвращает что-то :
SQL> with test (vehicle, datum, incidents, service, avg_no) as
2 (select 'x50', date '2020-01-01', 2, 1, 20 from dual union all
3 select 'x50', date '2020-01-09', 1, 0, 20 from dual
4 )
5 select vehicle, datum,
6 sum(incidents) over (partition by vehicle order by datum
7 rows between avg_no preceding and current row
8 ) as sum_incidents,
9 sum(service) over (partition by vehicle order by datum
10 rows between avg_no preceding and current row
11 ) as sum_service
12 from test;
VEH DATUM SUM_INCIDENTS SUM_SERVICE
--- ---------- ------------- -----------
x50 01.01.2020 2 1
x50 09.01.2020 3 1
SQL>
Я не знаю, хотите ли вы этого, но это не сработало. .