|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述:
- Traffic 表:
- +---------------+---------+
- | Column Name | Type |
- +---------------+---------+
- | user_id | int |
- | activity | enum |
- | activity_date | date |
- +---------------+---------+
- 该表没有主键,它可能有重复的行。
- activity 列是 ENUM 类型,可能取 ('login', 'logout', 'jobs', 'groups', 'homepage') 几个值之一。
-  
- 编写一个 SQL 查询,以查询从今天起最多 90 天内,每个日期该日期首次登录的用户数。假设今天是 2019-06-30.
- 查询结果格式如下例所示:
- Traffic 表:
- +---------+----------+---------------+
- | user_id | activity | activity_date |
- +---------+----------+---------------+
- | 1 | login | 2019-05-01 |
- | 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 |
- +---------+----------+---------------+
- Result 表:
- +------------+-------------+
- | login_date | user_count |
- +------------+-------------+
- | 2019-05-01 | 1 |
- | 2019-06-21 | 2 |
- +------------+-------------+
- 请注意,我们只关心用户数非零的日期.
- ID 为 5 的用户第一次登陆于 2019-03-01,因此他不算在 2019-06-21 的的统计内。
- 来源:力扣(LeetCode)
- 链接:https://leetcode-cn.com/problems/new-users-daily-count
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码
- select date as login_date , count(*) as user_count
- from(
- select user_id, min(activity_date) as date
- from Traffic
- where activity = "login"
- group by user_id
- having datediff('2019-06-30', min(activity_date)) <= 90
- ) data
- group by login_date
复制代码
注意事项:
1.这道题做得慢,需要熟练。 |
|