编写7天内连续活跃3次的用户
时间: 2023-11-27 14:49:05 浏览: 64
S7.NET_已翻译.pdf
假设有一个名为user_activity的表,包含以下列:
- user_id: 用户的唯一标识符
- activity_date: 用户活跃的日期
下面是查询连续活跃3天的用户的SQL查询语句:
```
SELECT user_id
FROM (
SELECT
user_id,
activity_date,
activity_date - ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY activity_date) as grp
FROM user_activity
) t
GROUP BY user_id, grp
HAVING COUNT(*) >= 3;
```
这个查询首先计算了每个用户每天的行号,然后通过计算行号和活动日期之间的差异来计算用户的活动组。最后,通过将用户和活动组分组并计算每个组的行数,找到具有3个或更多行的组。
阅读全文