这道题记下来是感觉似乎在之前的面经看到过。。
主要的几个点就是使用datediff函数以及去重了。
SELECT activity_date AS day, COUNT(DISTINCT user_id) AS active_users
FROM Activity
GROUP BY activity_date HAVING DATEDIFF('2019-07-27', activity_date) < 30
因为没有主键,所以可能有重复数据,所以要记得去重。
还有一个就是查询近30天,就用DATEDIFF(‘2019-07-27’, activity_date) < 30