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

相关推荐
后端漫漫7 分钟前
Redis 配置文件与服务功能
java·redis
Dwzun9 分钟前
基于Java+SpringBoot+Vue的校园二手物品置换系统设计与实现【附源码+文档+部署视频+讲解】
java·开发语言·spring boot
m0_6403093010 分钟前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
polaris063014 分钟前
Spring Boot 项目开发流程全解析
java·spring boot·log4j
qq_3721542315 分钟前
Redis如何在应用启动时预热缓存数据
jvm·数据库·python
2601_9498153315 分钟前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
解救女汉子20 分钟前
CSS如何利用CSS变量进行渐变色管理_提升渐变配置的灵活性
jvm·数据库·python
zuowei288925 分钟前
spring实例化对象的几种方式(使用XML配置文件)
xml·java·spring
C、空白格26 分钟前
Java集成Vosk实现离线语音识别
java·开发语言·语音识别
杨云龙UP27 分钟前
2000—CentOS Linux 7上部署Oracle 19c(19.3) RAC(RedHat/CentOS 7/8)
linux·运维·服务器·数据库·oracle·centos