Friday, 15 April 2011

sql - Average date diff on MySQL -



sql - Average date diff on MySQL -

i have table named 'game_logs' next structure:

id: integer user_id: integer game_id: integer game_event_type_id: integer timestamp: datetime

i have calculate average time diff between events of type "3" (game_event_type_id=3) records same user_id , game_id.

id, user_id, game_id, game_event_type_id, timestamp '1', '45', '92', '3', '2014-06-02 15:36:04' '2', '45', '92', '3', '2014-06-02 15:36:17' '3', '45', '92', '3', '2014-06-02 15:36:25' '4', '20', '91', '3', '2014-06-02 15:37:15'

i have been trying different things grouping game_id , user_id , calculating average @ same time seems challenging. left joining same table.

can help me? thanks!

you can average difference in seconds doing:

select user_id, game_id, (case when count(*) > 1 timestampdiff(second, min(timestamp), max(timestamp)) / (count(*) - 1) end) avgdiffseconds game_logs gl game_event_type_id = 3 grouping user_id, game_id;

the key thought average difference maximum minus minimum divided 1 less number of records.

mysql sql

No comments:

Post a Comment