How do I set up a Beast Mode to count distinct events within a date range?

Hi Domo geniuses,

I have a dataset with a timestamp 'Start' field that tells me the date and time that a user session began. There's another column for User Session ID, which has its own unique ID. I want to count the number of distinct user sessions in the first year but Domo is having difficulty processing the data. The formula validates but I get this error message:

Here's my Beast Mode:

Case When start>= MIN(DATE(Start))AND Start< DATE_ADD(Min(DATE(Start)),INTERVAL 1 Year) THEN COUNT(DISTINCT Session ID) ELSE 0 END

Tagged:

Answers

  • ColemenWilson
    edited December 2023

    If I solved your problem, please select "yes" above

  • I'm getting a syntax error

  • You can't aggregate an aggregate in a beast mode unless you're attempting to use a window or fixed function. Also, you can't compare an individual value to the aggregate of that same value within the same beast mode. Again this can be resolved with a window or fixed function:

    COUNT(DISTINCT CASE WHEN `Start` >= MIN(DATE(`Start`)) FIXED () AND `` < DATE_ADD(Min(DATE(`Start`)) FIXED (), INTERVAL 1 Year) THEN `` END)
    

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • Thanks Grant, when I try this I get a syntax error

  • @GrantSmith I fixed the sintax error with the code below but now it's only returning 1 user session per customer, which isn't correct. Any ideas what I can do?

    COUNT(DISTINCT
    Case When Start>= MIN(DATE(Start)) FIXED () AND Start< DATE_ADD(Min(DATE(Start)) FIXED (),INTERVAL 1 Year)
    THEN
    Session ID
    END)