力扣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天内,每一天有多少不同的用户进行了活动。这有助于分析用户在特定时间段内的活跃度和参与度。

相关推荐
qq_3729069315 小时前
mysql用户无法访问存储过程权限提示_MySQL EXECUTE赋权方案
jvm·数据库·python
脏脏a15 小时前
监控面板全绿但用户说网站打不开?Prometheus+Blackbox从外部验证服务真实可用性
数据库·prometheus
极客先躯15 小时前
高级java每日一道面试题-2025年11月17日-容器与虚拟化题[Dockerj]-请解释容器和虚拟机的本质区别,从架构层面详细说明。
java·docker·架构
qq_3926906616 小时前
如何正确解析含 HTML 实体的 XML 字符串并渲染为 HTML 表格
jvm·数据库·python
qq_4142565716 小时前
SQL如何处理时间序列缺失值_利用窗口函数进行前后值填充
jvm·数据库·python
2301_8038756117 小时前
CSS如何制作导航栏平滑移动_使用transition与left属性
jvm·数据库·python
zxrhhm1 天前
MySQL 8.4 LTS 数据库巡检脚本
数据库·mysql
雨奔1 天前
Kubernetes DNS 完全指南:服务发现核心机制与实践
java·kubernetes·服务发现
AI木马人1 天前
9.【AI任务队列实战】如何在高并发下保证系统不崩?(Redis + Celery完整方案)
数据库·人工智能·redis·神经网络·缓存
加农炮手Jinx1 天前
LeetCode 72. Edit Distance 题解
算法·leetcode·力扣