Help with Beastmode on Count with Condition

Hello, I feel like this should be a simple thing to do, but am stumped.

I am trying to do a count of order numbers where there is a condition to be met. Is there a if function that I can follow to do this?

For example, there is a list of vendors, some of which have registered and some have not. I want to count the # of orders the vendor has for 1) if they are registered and 2) if they are not registered in two separate columns.

I tried a few things, but can't seem to get it..

1) if 'isRegistered' = 'True' then count(OrderNo)

2) case when 'isRegistered' = 'True' then count(OrderNo) else 0 end. This step kind of works but whenever 'isRegistered' = 'False', it will just display as 0.

Thank you!

Answers

  • GrantSmith
    GrantSmith Coach
    edited April 2021

    Hi @user077529

    You can use a CASE statement to conditionally count values in a beast mode. You're close but yours is only counting everything if isRegistered is true. You want something like this:


    Registered count

    COUNT(CASE WHEN `isRegistered` = 'True' THEN `OrderNo` END)
    

    Non-Registered.

    COUNT(CASE WHEN `isRegistered` = 'False' THEN `OrderNo` END)
    


    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • SLam
    SLam Member
    edited April 2021

    Hey Grant,

    That's really helpful, thank you! Is there a way to do this if the value is null? For example...

    count(case when 'isRegistered' = NULL then 'OrderNo' END)

    And vice versa is there a way to count OrderNo if 'isRegistered' has ANY populated value, for example:

    count(case when 'isRegistered' not NULL then "OrderNo' END)

  • @user077529

    you would do isRegistered IS NULL and isregistered IS NOT NULL when evaluating nulls.

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.