zoukankan      html  css  js  c++  java
  • 牛客登录(四)

    牛客每天有很多人登录,请你统计一下牛客每个日期登录新用户个数,
    有一个登录(login)记录表,简况如下:

    第1行表示id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网,因为是第1次登录,所以是新用户
    。。。
    第4行表示id为2的用户在2020-10-13使用了客户端id为2的设备登录了牛客网,因为是第2次登录,所以是老用户
    。。
    最后1行表示id为4的用户在2020-10-15使用了客户端id为1的设备登录了牛客网,因为是第2次登录,所以是老用户


    请你写出一个sql语句查询每个日期登录新用户个数,并且查询结果按照日期升序排序,上面的例子查询结果如下:


    查询结果表明:
    2020-10-12,有3个新用户(id为2,3,1)登录
    2020-10-13,没有新用户登录
    2020-10-14,有1个新用户(id为4)登录
    2020-10-15,没有新用户登录

    错误答案:

    select a.date,count(*) from
    (select user_id,min(date)as date from login group by user_id)as a

    group by a.date
    order by a.date

    正确答案:

    select l.date,(select count(user_id) from
    (select user_id,min(date)as min_date from login group by user_id)as a
    where a.min_date=l.date) new
    from login l
    group by l.date
    order by l.date

    按照原错误答案,会遗漏没有用户登录的时间,因为a表中只包含min(date),而且选取date也是从a中选,无疑需要引入新列表

  • 相关阅读:
    IO流(5)—缓冲流
    vue-element-admin 中文问题
    npm 下载慢解决方案
    fatal: unable to connect to github.com
    为什么有sessionStorage,localStorage等,还需要vuex
    vuex页面刷新数据丢失的解决办法
    Node中JWT的使用
    socket.io 实现长连接演示代码
    WebSocket 实现长连接演示代码
    jquery ajax上传文件
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14398331.html
Copyright © 2011-2022 走看看