LeetCode(数据库)- 每日新用户统计

Posted 程序员牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(数据库)- 每日新用户统计相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:略。

解题思路:这题有点坑,首先题目描述不清楚是在倒退90天到今天为止,还是从今天开始算未来的90天;接着既然是倒退90天内,按照计算应该是到 '2019-04-02' 为止,包括今天的话,可是居然是到 '2019-04-01',这样算的话包括今天就是 91 天了。

AC 代码

-- 解决方案(1)
WITH t1 AS(SELECT *, ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY activity_date) rw
FROM Traffic
WHERE activity = 'login')

SELECT activity_date login_date, COUNT(DISTINCT user_id) user_count
FROM t1
WHERE rw = 1 AND activity_date BETWEEN '2019-04-01' AND '2019-06-30'
GROUP BY activity_date

-- 解决方案(2)
select login_date,count(user_id) user_count
from (select user_id, min(activity_date) login_date from Traffic
where activity='login'
group by user_id) t
where datediff('2019-06-30',login_date)<=90
group by login_date;

以上是关于LeetCode(数据库)- 每日新用户统计的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 每日新用户统计

每日SQL打卡​​​​​​​​​​​​​​​DAY 13丨每日新用户统计难度中等

适用于 Android 的 Fabric 插件中的每日新用户身份 - crashlytics

用户行为指标浅析

验证坐标在某片坐标区域内 php 代码

LeetCode1684. 统计一致字符串的数目(C++)