糖逗 发表于 2020-4-9 00:07:50

MySQL(1107. 每日新用户统计)

题目描述:
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.这道题做得慢,需要熟练。

乘号 发表于 2020-4-9 20:55:53

话说你建个淘贴不行吗

糖逗 发表于 2020-4-9 21:02:42

乘号 发表于 2020-4-9 20:55
话说你建个淘贴不行吗

淘帖是做什么的?没发过{:10_257:}

乘号 发表于 2020-4-9 21:06:00

糖逗 发表于 2020-4-9 21:02
淘帖是做什么的?没发过

。。。私聊

jkluoling1992 发表于 2020-4-21 23:09:06

很久之前做数据库封装,当时好像做了两个版本,一个mysql还有sqlite,一年不看都忘了好多

weiter 发表于 2020-4-28 12:17:16

淘专辑是个好东西啊~{:10_256:}
页: [1]
查看完整版本: MySQL(1107. 每日新用户统计)