Rolling Count Current Week

I am trying to create a table with rolling count of the current week, last 4 weeks, and last 8 weeks. I was able to create beast mode calculations for last 4 & 8 weeks, but I am lost in creating beast mode calculation for the current week. What would be the best way to calculate rolling count for the current week? Thank you in advance!

 

Below are the calculations for rolling 4 weeks and 8 weeks:

SUM(
CASE WHEN (`Date`) > DATE_SUB(CURRENT_DATE(), INTERVAL 4 WEEK)
AND (`Date`) <= CURRENT_DATE()
THEN `Units`
END)

 

SUM(
CASE WHEN (`Date`) > DATE_SUB(CURRENT_DATE(), INTERVAL 8 WEEK)
AND (`Date`) <= CURRENT_DATE()
THEN `Units`
END)

Best Answer

  • GrantSmith
    GrantSmith Indiana 🔴
    Accepted Answer

    Hi @user069636 

    You can calculate the first day in a week using the DAYOFWEEK function in your beast mode.

     

    SUM(
    CASE WHEN (`Date`) > DATE_SUB(CURRENT_DATE(), INTERVAL DAYOFWEEK(CURRENT_DATE()) DAY)
    AND (`Date`) <= CURRENT_DATE()
    THEN `Units`
    END)

     

    DAYOFWEEK returns values between 1 (Sunday) and 7 (Saturday). Subtracting that value for the number of days will return the end of last week so you just need to check to see if the date is after the end of last week.