题解 | #每天的日活数及新用户占比#

每天的日活数及新用户占比

http://www.nowcoder.com/practice/dbbc9b03794a48f6b34f1131b1a903eb

select
  NN.tm,
  NN.n,
  round(if(TT.mtm is null, 0, TT.t / NN.n), 2)
from
  (
    select
      T.mtm,
      count(T.uid) t
    from
      (
        select
          uid,
          min(date_format(in_time, "%Y-%m-%d")) mtm
        from
          tb_user_log
        group by
          uid
      ) T
    group by
      T.mtm
  ) TT
  right join (
    select
      N.tm,
      sum(N.num) over(
        order by
          N.tm
      ) n
    from
      (
        select
          M.tm,
          sum(M.act) num
        from
          (
            select
              date_format(in_time, "%Y-%m-%d") tm,
              uid,
              1 act
            from
              tb_user_log tul
            union all
            select
              date_format(date_add(out_time, INTERVAL 1 DAY), "%Y-%m-%d") tm,
              uid,
              -1 act
            from
              tb_user_log tul
          ) M
        group by
          M.tm
      ) N
  ) NN on TT.mtm = NN.tm
where
  NN.tm <> (
    select
      max(
        date_format(date_add(out_time, INTERVAL 1 DAY), "%Y-%m-%d")
      )
    from
      tb_user_log
  )
全部评论

相关推荐

01-11 08:47
门头沟学院 Java
羊村你懒哥1:如果不放毕业,我只能说导师是自己选的,错在你选了个垃圾导师,不在你实习
点赞 评论 收藏
分享
活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务