1142.过去30天的用户活动 II
±————–±——–+
| Column Name | Type |
±————–±——–+
| user_id | int |
| session_id | int | – 每个session 都有唯一的编号
| activity_date | date |
| activity_type | enum |
±————–±——–+
该表没有主键,它可能有重复的行。
activity_type列是一种类型的ENUM(“ open_session”,“ end_session”,“ scroll_down”,“ send_message”)。
该表显示了社交媒体网站的用户活动。
请注意,每个会话完全属于一个用户。
- 编写SQL查询以查找截至2019年7月27日(含)的30天内每个用户的平均会话数,四舍五入到小数点后两位。我们只统计那些会话期间用户至少进行一项活动的有效会话。
±——–±———–±————–±————–+
| 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 |
SELECT IFNULL(ROUND(COUNT(DISTINCT session_id) / COUNT(DISTINCT user_id), 2), 0) AS average_sessions_per_user
FROM Activity
WHERE DATEDIFF('2019-07-27', activity_date) < 30
-- WHERE activity_date BETWEEN '2019-06-28' AND '2019-07-27'
1141.查询近30天活跃用户数
±————–±——–+
| Column Name | Type |
±————–±——–+
| user_id | int |
| session_id | int | – 每个session 都有唯一的编号
| activity_date | date |
| activity_type | enum |
±————–±——–+
请写SQL查询出截至 2019-07-27(包含2019-07-27),近 30天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)。
SELECT activity_date as day,COUNT(DISTINCT user_id) as active_users
FROM Activity
WHERE DATEDIFF('2019-07-27',activity_date) < 30
GROUP BY activity_date