How to convert a Beast Mode with a CASE function in it into an aggregation?

Hello everyone,

Please, do you know how to convert a Beast Mode with a CASE function in it into an aggregation?

I have tried adding a SUM() before the CASE function, I have tried converting the CASE into a number using CONVERT() or CAST().

Thanks in advance!

Comments

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟀

    what code are you writing?


    SUM(CASE WHEN ... then AMOUNT END)

    should work fine

  • user030119
    user030119 βšͺ️

    This is the formula (I changed the names of measures and dimensions):

    SUM(CASEΒ 

    WHEN TRIM(`Car Model`)='Sport Car'

    THEN AVG(`Probability of Accident in Decimals`)

    ELSE 0

    END)

    I get the following error when I add the SUM function at the beginning: "An issue has occurred during processing. We are unable to complete the request at this time."

    We pull the Probability of Accident in Decimals from Salesforce, we don't calculate it in Domo. Depending on the car model the probability of accident in decimals changes. What happens is that because Domo doesn't see the beast mode as an aggregation then the subtotals and totals are the sum of the average of the probabilities. I need to convert the beast mode to aggregation in order to select average instead of sum.

  • amehdad
    amehdad 🟠
    edited October 2

    Hi @user030119

    The error is occurring because there's an aggregate function (i.e. SUM) on top of an aggregate function (i.e. AVG), which isn't possible to process in a beast mode.

    What could work is to set up AVG(`Probability of Accident in Decimals`) as a separate calculation before Analyzer (for example, as a calculated field in the ETL) and then write your formula using the newly created measure.

    There's also the consideration of whether summing up averages is going to give you the right numbers to solve your business problem/situation.