题目:

Traffic 表:

该表没有主键,它可能有重复的行。
activity 列是 ENUM 类型,可能取 (‘login’, ‘logout’, ‘jobs’, ‘groups’, ‘homepage’) 几个值之一。

问题
编写一个 SQL 查询,以查询从今天起最多 90 天内,每个日期该日期首次登录的用户数。假设今天是 2019-06-30.

示例

Traffic 表:

Result 表:

请注意,我们只关心用户数非零的日期.
ID 为 5 的用户第一次登陆于 2019-03-01,因此他不算在 2019-06-21 的的统计内。

建表语句:

1 Create table If Not Exists traffic_1107 (user_id int(3), activity enum('login','logout','jobs','groups','homepage'), activity_date date);
2 Truncate table traffic_1107;
3 insert into traffic_1107 (user_id, activity, activity_date) values (1, 'login', '2019-05-01'),
4 ('1', 'homepage', '2019-05-01'),('1', 'logout', '2019-05-01'),('2', 'login', '2019-06-21'),('2', 'logout', '2019-06-21'),('3', 'login', '2019-01-01'),('3', 'jobs', '2019-01-01'), ('3', 'logout', '2019-01-01'),('4', 'login', '2019-06-21'),('4', 'groups', '2019-06-21'),('4', 'logout', '2019-06-21'),('5', 'login', '2019-03-01'),('5', 'logout', '2019-03-01'),('5', 'login', '2019-06-21'),('5', 'logout', '2019-06-21');

解题思路:

1.先以user_id分组找出所有用户第一次登陆的时间;
2.在第一步结果中筛选出距今90天内的数据;
3.最后使用聚合count()计数;

1 select login_date, count(user_id) as user_count
2 from (
3 select user_id,min(activity_date) as login_date
4 from traffic_1107
5 where activity = 'login'
6 group by user_id
7 )as temp
8 where datediff('2019-06-30', login_date) <= 90
9 group by login_date;

力扣1107(MySQL)-每日新用户统计(中等)的更多相关文章

  1. Mysql创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES)

    MySQL创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES) ,多半是因为存在匿名用户, ...

  2. MySQL创建新用户、增加账户的2种方法及使用实例

    可以用两种方式创建MySQL账户:1.使用GRANT语句2.直接操作MySQL授权表最好的方法是使用GRANT语句,因为这样更精确,错误少.创建超级用户: mysql> GRANT ALL PR ...

  3. mysql创建新用户及新用户不能本地登陆的问题

    最近在搭建hadoop集群,主节点上面安装的MySQL数据库,对着方面不熟悉,为hive.Ooize等服务统一使用的root账号和密码,为了安全一些库对于某些用户是不可见的,所以需要针对不同的服务设置 ...

  4. mysql创建新用户出现错误处理

    心血来潮创建一个新用户,结果...步步艰难啊,好在最后成功,把我出现的问题和解决方案抛出来,希望大家顺顺利利创建成功┗|`O′|┛ 嗷~~ 我出现的错误主要有这三种: 1.ERROR 1064 (42 ...

  5. MySQL添加新用户、为用户创建数据库、为新用户分配权限

    登录MySQL [root@VM_0_2_33_centos /]#mysql -u root -p 添加新用户 允许本地 IP 访问 localhost, 127.0.0.1 mysql>'; ...

  6. mysql 创建新用户并添加权限

    1.添加用户 1.1 添加一个新用户: mysql>grant usage on *.* to " with grant option; 上面这种只支持mysql服务器本地登录. 1. ...

  7. mysql创建新用户

    如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可. 以下为添加用户的的实例,用户名为qi,密码为python,并授权用户可进行SELECT,INSERT ...

  8. mysql 创建新用户 并赋予权限

    1.以管理员身份登录mysql mysql -u root -p 2.选择mysql数据库 use mysql 3.创建用户并设定密码 create user 'testuser'@'localhos ...

  9. mysql 创建新用户、数据库、授权

    创建用户 1.登录mysql mysql -uroot -p 2.创建本地用户(2.3选其一) #use mysql;             //选择mysql数据库 #create user 'w ...

  10. Mysql创建新用户方法

    1. CREATE USER 语法: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例子: CREATE USER 'dog'@'lo ...

随机推荐

  1. IIS web.config 跨域设置 不包含 options的设置 thinkphp tp3 跨域

    web.config <?xml version="1.0" encoding="UTF-8"?> <configuration> &l ...

  2. Vite-vue3 架构设计

    Vite-vue3 架构设计 基础信息 Gitee项目地址:https://gitee.com/pengchenggang/vite-vue3 1 创建vite-vue3 初始化脚本 $ npm in ...

  3. Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR

    原文:Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR - S ...

  4. buu第一页复盘

    这里就对之前第一遍没写出来的题目再写一次wp 写在之前 贴一下我的模块文件 from pwn import * from LibcSearcher import * from struct impor ...

  5. ubuntu20 宽带连接

    nmcli connection edit type pppoe con-name "连接名称" set pppoe.username 宽带账号 set pppoe.passwor ...

  6. 3、Azure Devops之Azure Repos篇

    1.什么是Azure Repos Azure Repos,就是我们常说的代码仓库,相当于gitee,github,git,svn工具.主要是提供给开发人员使用的,管理.查看代码的部件.通过Files. ...

  7. 大模型应用开发:手把手教你部署并使用清华智谱GLM大模型

    部署一个自己的大模型,没事的时候玩两下,这可能是很多技术同学想做但又迟迟没下手的事情,没下手的原因很可能是成本太高,近万元的RTX3090显卡,想想都肉疼,又或者官方的部署说明过于简单,安装的时候总是 ...

  8. Java CC链全分析

    CC链全称CommonsCollections(Java常用的一个库) 梦的开始CC1 环境部署 JDK版本:jdk8u65 Maven依赖: <dependencies> <!-- ...

  9. 记录--Object.assign 这算是深拷贝吗

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在JavaScript中,Object.assign() 是一个用于合并对象属性的常见方法.然而,对于许多开发者来说,关于它是否执行深拷贝 ...

  10. 记录--Vue 右键菜单的秘密:自适应位置的实现方法

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 下图这个情景,你是否也遇到过? 当你右键点击网页上的某个元素时,弹出的菜单被屏幕边缘遮挡了,导致你无法看清或选择菜单项? 上图中右键菜单的 ...