SUM of CASE in Beast Mode

I'm trying to do what I have below and am failing. I have multiple columns with Yes/No statements and I want to count the yes ones and divide by the total.

 

SUM((CASE
WHEN `Col1` = '' THEN 0 ELSE 1
WHEN `Col2` = '' THEN 0 ELSE 2
WHEN `Col3` = 'Disabled' OR `Col3` = 'Local Approval' THEN 0 ELSE 1
WHEN `Col4` = '' THEN 0 ELSE 1
END)) / 5 * 100

 

Basically what i'm looking to do is to fill the % Control Assessment column with the ratio of yes columns. Can someone point me in the right direction?

 

Screen Shot 2018-03-02 at 12.53.13 PM.png

Best Answer

  • Valiant
    Valiant Coach
    Answer ✓

    If I understand what you're wanting, you'll need to break each "yes check" into separate case when's like this:

     

    SUM(CASE WHEN `Inventory` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `Malware` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `App Software` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `Logging` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `Information` like 'Yes' THEN 1
    ELSE 0
    END) /5 * 100

     

    Hope that helps with what you need. If you're looking for something else, please let me know.


    Sincerely

    ValiantSpur

     

    **Please mark "Accept as Solution" if this post solves your problem
    **Say "Thanks" by clicking the "heart" in the post that helped you.

     

Answers

  • Valiant
    Valiant Coach
    Answer ✓

    If I understand what you're wanting, you'll need to break each "yes check" into separate case when's like this:

     

    SUM(CASE WHEN `Inventory` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `Malware` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `App Software` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `Logging` like 'Yes' THEN 1
    ELSE 0
    END
    +
    CASE WHEN `Information` like 'Yes' THEN 1
    ELSE 0
    END) /5 * 100

     

    Hope that helps with what you need. If you're looking for something else, please let me know.


    Sincerely

    ValiantSpur

     

    **Please mark "Accept as Solution" if this post solves your problem
    **Say "Thanks" by clicking the "heart" in the post that helped you.

     

  • I will give that a try, thanks for the quick reply.