力扣SQL50 查询近30天活跃用户数 datediff(日期1,日期2)

Problem: 1141. 查询近30天活跃用户数

👨‍🏫 参考题解


sql 复制代码
-- 选择活动日期作为天数,计算每天的唯一活跃用户数
select activity_date as day, count(distinct user_id) as active_users
from activity
-- 从2019年7月27日开始的30天内
where datediff('2019-07-27', activity_date) >= 0 
      AND datediff('2019-07-27', activity_date) < 30
-- 按活动日期分组,以便为每一天计算活跃用户数
group by activity_date;

解释:

  1. select activity_date as day, count(distinct user_id) as active_users:

    • activity_date as day: 选择activity_date字段,并将其重命名为day,以便于理解。
    • count(distinct user_id) as active_users: 计算user_id字段的唯一值数量,并将其重命名为active_users,表示每天的活跃用户数。
  2. from activity: 指定查询的数据来源,即从activity表中选择数据。

  3. where datediff('2019-07-27', activity_date) >= 0 AND datediff('2019-07-27', activity_date) < 30:

    • datediff('2019-07-27', activity_date) >= 0: 确保只选择activity_date在2019年7月27日或之后的记录。
    • datediff('2019-07-27', activity_date) < 30: 确保只选择activity_date与2019年7月27日的天数差小于30天的记录,即从2019年7月27日开始的30天内的记录。
  4. group by activity_date:

    • activity_date字段分组,这样可以为每一天计算出唯一的user_id数量,即每天的活跃用户数。

这个查询的目的是为了统计在2019年7月27日开始的30天内,每一天有多少不同的用户进行了活动。这有助于分析用户在特定时间段内的活跃度和参与度。

相关推荐
Freak嵌入式15 分钟前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
Elastic 中国社区官方博客19 分钟前
Elastic 和 OpenAI 合作,将前沿智能引入非结构化企业数据
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai
ShiXZ21326 分钟前
Java 8 Stream API 实用技巧详解:从入门到精通
java·开发语言
云和恩墨28 分钟前
数据库一体机zData X 3.6.0以“性能、成本、韧性、生态”强化数据库基础设施价值主张
数据库
灯澜忆梦1 小时前
【MySQL7】多表查询
数据库·sql
Qlittleboy1 小时前
tp5网站链接不上slqserver,计算机积极拒绝了链接
数据库·sql
C++、Java和Python的菜鸟1 小时前
第9章 后端Web进阶(AOP)
java·开发语言·前端
东北赵四1 小时前
关于Java泛型的知识点及其相关面试题
java·windows·python
姓蔡小朋友1 小时前
Java线程并发
java·开发语言·python
执笔画流年呀2 小时前
⾃动化测试常⽤函数
java·dubbo