Cumulative Count by Month

I am looking to obtain a count of all dates that are less than each month on a table. Please see attachment for reference. In other words, I need a cumulative count of how many enrollments the company has so far going into each month.

 

The 2019-Dec line should count all dates less than 12/1/2019

The 2020-Jan line should count all dates less than 1/1/2020

The 2020-Feb line should count all dates less than 2/1/2020

and so on...

 

Is there some way to dynamically reference the date of each line? Almost like curdate, but the date of each line instead.

 

I hope I have explained this adequately. Thank you in advance for any help I receive.

Comments

  • MarkSnodgrass
    MarkSnodgrass Portland, Oregon 🟤

    You could use a Running Total card to automatically build the cumulative totals for you. You could also create a beast mode called DisplayDate (or whatever makes sense to you) that just has a AddDate function in it that would display the next months name instead of the month it is in. This function would do it

    ADDDATE(`Date Entrolled`, interval 1 month)

    If you don't want to use a Running Total card, you would need to use the Rank & Window Functions in Magic ETL to build the cumulative total.

  • GrantSmith
    GrantSmith Indiana 🔴

    If you have window functions enabled in your instance you could do this via a windowed function in a Beast Mode instead of a running total card:

    SUM(SUM(1)) OVER (ORDER BY `Date`)

    And then utilize @MarkSnodgrass 's solution about adding a month to the date for display purposes via another beast mode.

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟤
    @GrantSmith wrote:

    If you have window functions enabled in your instance you could do this via a windowed function in a Beast Mode instead of a running total card:

    SUM(SUM(1)) OVER (ORDER BY `Date`)

    And then utilize @MarkSnodgrass 's solution about adding a month to the date for display purposes via another beast mode.


    If you want to count by month then just alter @GrantSmith  SQL:

     

    SUM(SUM(1)) OVER (GROUP BY date_format(`DATE`, '%Y%m') ORDER BY `Date`)

    In order for it to work, you'll need to have year-month on the axis.  

     

    This technique we're introducing is called 'Window Functions' check out the video below for more information!

    https://www.youtube.com/watch?v=cnc6gMKZ9R8&t=316s

     

  • Genival_Junior
    Genival_Junior Brasil ⚪️

    Dear @jaeW_at_Onyx , how do i know if Windows Function is enable on my instance ?

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟤

    @user025461 , contact your Domo CSM or sales representative and ask them to enable the feautre: "window functions in beast mode"