Unique Records in Beast Mode

I have three topics/cards with id's 11631,11634 &11636 and I have many users who completed these topics/cards. Now I want the list of all the users who completed all the three cards in a beast mode calculation. 
Base dataset would have columns like : card_id, user_id, Time

Best Answer

  • GrantSmith
    GrantSmith 🥷
    Answer ✓

    Hi @user073741 


    You can use a beast mode to calculate the number of distinct topic / card IDs if you're grouping based on the user ID with a simple COUNT(DISTINCT `user_id`)  however you aren't able to filter on an aggregate on a card. There is an alpha feature which enables this however I don't recommend it as it's doesn't always function as expected and is not even in beta.


    What I recommend you do is use either a Dataset View (beta - talk with your CSM to about getting it enabled) to do a group by user_id and count the distinct number of card_ids


    Alternatively you could do this within a Magic ETL 2.0 dataflow using a groupby tile with the "Count Distinct Values" option.


    The end result is a dataset you can then use which would contain the user IDs and the number of distinct card_ids the user has taken to then filter this information based on.

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**


  • Thanks for the idea. I tried this way although I didn't get the filter this works for me.

  • does this video help address the thing you're trying to solve.

    honestly, it's a bit complex for your use case.  you could just make a beast mode


    case when card_ID in (<list of ids> ) then 'keep' else 'toss' end


    then use that to filter your card. 

    if you put 'user' on the axis, you know ever user that has completed one of those trainings.


    if you take sum( case when card_ID in (<list of ids> ) then 1 end), if the number = 3 then they completed all the cards.

    Jae Wilson
    Check out my 🎥 Domo Training YouTube Channel 👨‍💻

    **Say "Thanks" by clicking the ❤️ in the post that helped you.
    **Please mark the post that solves your problem by clicking on "Accept as Solution"