I am trying to calculate the difference between values in the same column on 2 different dates

I only have 3 dimensions and one measure.

Dimensions:

Date

Category

Company

Measure:

Category Rank

I am trying to create a calculated field based on Rank, that tells me the difference month over month. I thought I'd be able to find a calculation in beast mode for different, but am not. If anyone can help me with a calculation that will tell me the difference in Category Rank Month over month that would be fantastic.

Answers

  • GrantSmith
    GrantSmith Indiana 🔴

    Hi @user03781

    Have you tried using a LAG or LEAD window function? They'll get you the value from the row before or after respective

    You can then take the rank difference between the two dates.

    I did a write up on them here: https://dojo.domo.com/discussion/52679/domo-ideas-conference-beast-modes-rolling-averages

  • Hi,

    I'm facing a similar issue. In my case, I wanted to see the difference between two dates in the same column. I have a Rank column also. I have used the beast mode calculation as

    (Case when 'rank' = 2 then 'date' end) - (Case when 'rank' = 1 then 'date' end)

    But this is not giving any data, the output is just blank. Let me know, if any solution are there?

    Thanks

  • GrantSmith
    GrantSmith Indiana 🔴

    Hi @Salmas

    Beast modes are evaluated on a row basis and typically don't know of other rows. So in your case it won't ever see a row with rank 1 if it's on the row of rank 2. When you subtract NULL from something the ending result is NULL which is why you have blank output.

    You'd need to use the LAG (prior) or LEAD (next) function to get the appropriate value you want to evaluate. Make sure you order your data correctly with your lag/lead function otherwise you'll get unexpected results.

    Here's a post I did on rolling average which might give you some additional insight into how LAG/LEAD work.

    Domo IDEAs Conference - Beast Modes - Rolling Averages


    If you don't have access to the LAG and LEAD functions in a beast mode you might need to talk with your CSM to get it enabled.

  • @Salmas i would try using datediff instead of minus (-) operand. That might work.