I have seen solution to a 5 day rolling average with 5 lines of code to build to 5 days, gets big with a 50 day average
Do not want create 50 extra columns to build the rolling average.
Not sure of specifics, but you could use a sub-query (MySQL/Redshift) or fork your MagicETL to filter for (roughly) `Your Data Date` <= CURRENT_DATE - '50 Data Days' then take an AVG of whatever the quantity column is. Once you have that, join it back to the main query or branch. Assuming your data updates daily/regularly, then this average should stay current.
do you HAVE to have it in ETL? b/c you could shape your data by creating a Date Dimension
with two columns Report Date and Activity Date, such that the report date has A Day, and for each day in the Report Date you trail 50 days.
So if my Date table had 5 consecutive ReportDates, it'd have 5 * 50 (trailing) Activity dates. for a total of 250 rows.
Then JOIN that to your fact Table on the Activity Date = Posting Date using a Fusion. Then you can put Report Date on the Analyzer axis, and Avg (amount) or whatever.
You can do the same in ETL... but don't... writing a table exploded 50x is foolish. also if you hardcode the rolling average, then it won't respond to filters.