流失玩家查询

jaybsr 2018-01-03 06:22:19
有登陆日志表loginlog,每次登陆会记录玩家userid以及logintime,如何查询日期1登陆了但是日期2没有登陆过的玩家以及最后一次登陆时间(也就是日期1到日期2之间的最后一次登陆日志)?
...全文
612 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-01-04
  • 打赏
  • 举报
回复
另外,你那个 logintime 是 unix timestamp 值吧? 需要用 from_unixtime 转成 datetime 后做比较
zjcxc 2018-01-04
  • 打赏
  • 举报
回复
-- 日期1登录而日期2没登录
select loginid from tb where logintime between @日期1 and @日期2
group by loginid
having timestampdiff(day, min(logintime), max(logintime)) < timestampdiff(day, @日期1, @日期2)
;
-- 最后一次登录时间
select loginid, max(logintime) from tb
where logintime between @日期1 and @日期2
group by loginid
zjcxc 2018-01-04
  • 打赏
  • 举报
回复
最后一次登录 [ code=sql]select loginid, max(logintime) from tb where logintime between @日期1 and @日期2[/code]
Inter_Ares 2018-01-03
  • 打赏
  • 举报
回复
给个比较笨的思路,就是做两个结果集。 第一个结果集是日期2登录的用户,第2个结果集是这个期间内各个用户最近的登录时间 select * from loginlog t1, (select userid, max(logintime) maxTime from loginlog where logintime>=日期1 and loginTime <=日期2) t2 where t1.userid= t2.userid and t1.logintime = 日期1 and t1.userid not in (select userid from loginlog where logintime = 日期2)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧