I hope you're able to help with this, it is creating a lot of unnecessary work for me...
I have a lot of users that are assigned a unique session_id each time they start the game. This means they can get multiple session_id 's in a single day if they crash and/or just restart the app. I want to be able to combine all these id's in a single query without having to manually check each one.
First, I use the query below to get the list of users who played the game between a certain time frame. This gives me their user_id, session_id as PlayerName
SELECT
user_id
, session_id
, value as PlayerName
FROM
bi_userevent
WHERE
context = 'Player'
AND action = 'Name'
[[AND local_time >= {{StartTime}}::timestamp at time zone 'US/Pacific']]
[[AND local_time < {{EndTime}}::timestamp at time zone 'US/Pacific']]
GROUP BY 1,2,3
ORDER BY PlayerName
SAMPLE DATA (From query above)
user_id session_id playername
4234hjh2342 asjd7a7yf978as Player 1
4234hjh2342 asjd7a7yf978as Player 1
f872j23hasd 52354294khjhjh Player 2
9as90d09asd zf87fsd08s7das Player 3
9as90d09asd 80asd7g90asd7g Player 3
9as90d09asd aga90786e9a0f6 Player 3
Now, the hard part... I have to manually enter each session_id to get their playtime against the server time. Since each player can have multiple session_id's I allowed for the entry of multiple session_id's for each player (As a variable in Metabase).
SELECT
(EXTRACT(EPOCH FROM ( MAX(local_time) - MIN(local_time)) ::INTERVAL)/60)::integer as duration
FROM bi_userevent
WHERE
session_id = {{session_id}}
[[OR session_id = {{session_id2}}]]
[[OR session_id = {{session_id3}}]]
[[OR session_id = {{session_id4}}]]
Once I enter the session_id's I run the query and it gives me the duration of playtime for the combined session_id's. I can have somewhere up to 400 players in a single query and it just feels like a massive waste of time entering hundreds of session ID's and it feels like a massive waste of time. I thought I would be able to add the duration statement from the second query into the first and group by the user_id... Simple right? No, I get a value of 0 and I am not sure why.
My ultimate goal is to run 1 query, return the player name and session_id length of play... Or, better yet join all of a single players session id's together with the combined play length of the id's
THANK YOU for any and all help, it is greatly appreciated!