Getting incorrect result while computing an output using Beast mode

Hi,

The below beast mode works perfectly when only 'metric A' is selected as a filter.

However, when 'metric A' and 'metric B' is selected as filter under 'metrics' then the resulting value changes.

Note: I have attached a screenshot when the correct value is coming with only metric A as 72224, whch changes to 72213 with 2 metrics in filter.


(case 
when `metrics`='metric A' 
then
(case 
when ((`values` - lag(`values`,1) OVER (ORDER BY `date_id`))=0 and `date_id`>'2022-10-01' )
then (((lag(`values`,1) OVER (ORDER BY `date_id`)) - (lag(`values`,7) OVER (ORDER BY `date_id`)))/7 + `values`)
else `values`
END
)
 end)


Tagged:

Answers

  • GrantSmith
    GrantSmith Indiana 🥷

    When you’re filtering and including a and b your lag function will pull data from metric a and b. You’ll want to add PARTITION BY ` metric ` to your lag statements to make sure you’re not jumping metrics with the lag

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • @GrantSmith Thanks for the solution, this works. However, now when I proceed with the changes over the bar chart, the width size reduces. Attached old vs new case. How can I get the increase the bar width size?


  • There is another issue arring here of the duplicate dates on X axis. How can I overcome this issue?