Guest User

Untitled

a guest
May 27th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. user_id
  2. event
  3. time
  4.  
  5. SELECT COUNT(t.user_id) cnt_session, t.user_id
  6. FROM time_user t
  7. WHERE ROUND(
  8. (
  9. (
  10. SELECT t1.`time`
  11. FROM time_user t1
  12. WHERE t1.user_id = t.user_id AND t1.`time` > t.`time` LIMIT 1
  13. )
  14. - t.`time`
  15. ) / 60
  16. ) > 5
  17. GROUP BY t.user_id
  18. ORDER BY t.`time` ASC
  19.  
  20. CREATE TABLE `time_user` (
  21. `user_id` INT(11) NULL DEFAULT NULL,
  22. `time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  23. `event` ENUM('Y','N') NULL DEFAULT NULL,
  24. INDEX `user_id` (`user_id`),
  25. INDEX `time` (`time`)
  26. )
  27. COLLATE='utf8_general_ci'
  28. ENGINE=InnoDB
  29. ;
  30.  
  31. select avg(length)
  32. from (
  33. select user_id, snum, TIMESTAMPDIFF(SECOND,min(time),max(time)) length
  34. from(
  35. select user_id,time,
  36. @snum:=if(@user=user_id and TIMESTAMPDIFF(SECOND,@ptime,time) <= 60*5,
  37. @snum,@snum+1) snum,
  38. @user:=user_id, @ptime:=time
  39. from time_user,
  40. (select @ptime:=0, @user:=0, @snum:=0) A
  41. order by user_id, time
  42. ) B
  43. group by snum
  44. ) C
  45.  
  46. select t.user_id, count(t.user_id)+1 as cnt_session, (SELECT count(DISTINCT t2.user_id) FROM time_user t2) as cnt_users
  47. from time_user t
  48. WHERE ROUND(((SELECT t1.`time` FROM time_user t1 WHERE t1.user_id = t.user_id AND t1.`time` > t.`time` ORDER BY t1.time ASC LIMIT 1) - t.`time`) / 60) > 5
  49. GROUP BY t.user_id
  50. ORDER BY t.`time` ASC
Add Comment
Please, Sign In to add comment