Creating a rolling standard deviation within magic ETL

edited January 2023 in Magic ETL

I'd like to create rolling standard deviation within Magic ETL that uses the previous 90 rows (or previous 90 days) as the window. I was able to do this within MySQL before, however, I'd like to do this within Magic ETL.

For example if I have 100 rows of data each row should reference the previous 90 rows as the sample size for the standard deviation (ex. row 5 would reference previous 5 rows, row 10 prev 10 rows... then once it hits 90 it would reference 90 rows... 91 would be row 2 - 91)



  • I'm not sure how large your data set is, but I was able to accomplish this in Magic ETL in the following way…

    My dataset has two columns, row count and number. In this case, number is just a random number between 1 and 100.

    1. Added a constant to my dataset and duplicated the tile
    2. Cross Join the two tiles on my Constant value
      1. by naming the second tile 'duplicate' the autofix feature of the join tile will append 'dupliacte.' to all of the duplicate rows of data
    3. The Filter tile is where I am setting the 90 row window. I use two formula rules:
    4. Then I use the Group by tile to create a formula and calculate the Standard deviation:

    Hope this helps. This question has been bothering me for a long time because I couldn't figure out a solution.

    “There is a superhero in all of us, we just need the courage to put on the cape.” -Superman