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

相关推荐
JAVA学习通2 小时前
北京明光云振铎数据科技Java面经
java·开发语言·科技
贫民窟的勇敢爷们8 小时前
SpringBoot整合AOP切面编程实战,实现日志统一记录+接口权限校验
java·spring boot·spring
浅念-8 小时前
递归解题指南:LeetCode经典题全解析
数据结构·算法·leetcode·职场和发展·排序算法·深度优先·递归
Mahir088 小时前
Redis 与 MySQL 数据同步:一致性保证的完整解决方案
数据库·redis·mysql·缓存·面试·数据一致性
2301_769340678 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发).txt
jvm·数据库·python
AC赳赳老秦8 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
迈巴赫车主8 小时前
Java基础:list、set、map一遍过
java·开发语言
灵犀学长9 小时前
基于 Spring ThreadPoolTaskScheduler + CronTrigger 实现的动态定时任务调度系统
java·数据库·spring
洛水水9 小时前
【力扣100题】33.验证二叉搜索树
算法·leetcode·职场和发展
北秋,9 小时前
PostgreSQL(Postgres)数据库基础用法 + 数字型 + 字符型 完整联合注入实战
数据库·postgresql·开源