Consulta até agora:
select month
, year
, vol
--, sum(vol) over (order by month,year ROWS BETWEEN 2 PRECEDING AND current row) sumnetvol,
, avg(vol) over ( order by month,year
ROWS BETWEEN 2 PRECEDING
AND current row) '3monthra'
, name
, cnt
, costx
from (
SELECT month(convert(datetime, cast(monthnumber as nvarchar(10))+'01')) as [Month]
, year(convert(datetime,cast(monthnumber as nvarchar(10))+'01')) as [Year]
, sum(SumOfNetAmount) as vol
, count(*) as cnt
, costx
, name
FROM [ngl_OTB]
GROUP BY costx
, MONTH(convert(datetime,cast(monthnumber as nvarchar(10))+'01'))
, YEAR(convert(datetime,cast(monthnumber as nvarchar(10))+'01'))
, name
, SumOfNetAmount
) s
where costx = '1000.002' and
name = 'ngl-raw'
order by month,year
Preciso de ajuda sobre como definir recursivamente as colunas [costx] e [name] para permitir 3 meses de rolagem média de cada [costx] e [name] corretamente. Todas as tentativas forneceram cálculos errados, como 3 meses consecutivos, a média estava sangrando em outro custox e nome. Meu objetivo é agrupar todos os dados por custox e nome e ordenar por ano e mês e, em seguida, realizar uma média de 3 meses contínuos em cada custox usando o valor de [vol] para esse [custox]
Qualquer ajuda será muito apreciada