Calculating only the distinct values for many duplicate sessions


I'm working on a conversation dataset that has a lot of duplicate values as our API creates a duplicate session ID for each part of the conversation someone reaches when they engage with our experience. My problem is I'm having difficulty calculating that average conversation duration because each duplicate row per session ID also has a duplicate conversation duration value, so I can't simply take the average value of that column. Is there a way that I can create a beast mode calculation that only calculates the average session duration 'durationsec' when there is a unique 'session'?

I've included an extract of my dataset that includes the duplicate session IDs and their corresponding duration metrics.

Any help would be greatly appreciated :)



Best Answer

  • GrantSmith
    GrantSmith 🥷
    Answer ✓

    You can use a fixed function for this:

    AVG(MAX(`duration`) FIXED (BY `session`))

    This will take the maximum of the duration for each session identifier and then average each of those values out. As the duration should be the same across all of the same sessions this is essentially deduping your durations.

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