1141. 查询近30天活跃用户数 - 力扣(LeetCode)
可以使用 DISTINCT
统计每天的活跃用户数。SQL 解决方案如下:
WITH Last30Days AS (
SELECT DISTINCT activity_date, user_id
FROM Activity
WHERE activity_date BETWEEN DATE_SUB('2019-07-27', INTERVAL 29 DAY) AND '2019-07-27'
)
SELECT activity_date, COUNT(user_id) AS active_users
FROM Last30Days
GROUP BY activity_date;
此查询的逻辑如下:
-
通过
WITH
子句(CTE)筛选出最近 30 天内的activity_date
和user_id
组合,以确保每个用户在某一天仅被计算一次。 -
在最终的
SELECT
语句中,对activity_date
进行GROUP BY
,并计算每天的活跃用户数。
你可以根据需要调整 DATE_SUB
的天数或日期范围!🚀