博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Easy之1141.查询近30天活跃用户数
阅读量:3717 次
发布时间:2019-05-21

本文共 1135 字,大约阅读时间需要 3 分钟。

活动记录表:Activity

Column Name Type
user_id int
session_id int
activity_date date
activity_type enum

该表是用户在社交网站的活动记录。

该表没有主键,可能包含重复数据。
activity_type 字段为以下四种值 (‘open_session’, ‘end_session’, ‘scroll_down’, ‘send_message’)。
每个 session_id 只属于一个用户。

问题

请写SQL查询出截至 2019-07-27(包含2019-07-27),近 30天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)。

查询结果示例如下:

Activity table:

user_id session_id activity_date activity_type
1 1 2019-07-20 open_session
1 1 2019-07-20 scroll_down
1 1 2019-07-20 end_session
2 4 2019-07-20 open_session
2 4 2019-07-21 send_message
2 4 2019-07-21 end_session
3 2 2019-07-21 open_session
3 2 2019-07-21 send_message
3 2 2019-07-21 end_session
4 3 2019-06-25 open_session
4 3 2019-06-25 end_session

Result table:

day active_users
2019-07-20 2
2019-07-21 2

非活跃用户的记录不需要展示。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/user-activity-for-the-past-30-days-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题

select activity_date day,count(distinct user_id) active_usersfrom activitywhere datediff('2019-07-27',activity_date) < 30---日期在2019-06-28到2019-07-27group by activity_date

知识点

datediff(‘2019-07-27’,activity_date),表示avtivity_date到‘2019-07-27’的间隔天数

你可能感兴趣的文章
Spring IOC&DI
查看>>
Spring AOP
查看>>
静态代理&动态代理
查看>>
Spring事务详解
查看>>
SpringMVC概述
查看>>
SpringBoot实现登录注册
查看>>
Redis
查看>>
ElasticSearch
查看>>
HBase原理
查看>>
Spring面试题
查看>>
Kafka详解
查看>>
Scala编程及基础
查看>>
计算机操作系统第三章处理机调度与死锁习题及答案
查看>>
SparkCore 第二部分
查看>>
Scala求平均值
查看>>
Spark SQL函数API
查看>>
Exception in thread "main" java.lang.AbstractMethodError
查看>>
SparkStreaming 第一部分
查看>>
每日任务
查看>>
HashSet如何保障元素不重复?
查看>>