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

相关推荐
IntMainJhy6 分钟前
【flutter for open harmony】第三方库 Flutter 二维码生成的鸿蒙化适配与实战指南
数据库·flutter·华为·sqlite·harmonyos
それども11 分钟前
Spring Bean 注入的优先级顺序
java·数据库·sql·spring
张子行的博客13 分钟前
SQL 调优实战:跨表排序性能提升之路
数据库·sql·oracle
ID_1800790547314 分钟前
Python 实现京东商品详情 API 数据准确性校验(极简可直接用)
java·前端·python
贾斯汀玛尔斯14 分钟前
每天学一个算法--Aho–Corasick 自动机
java·linux·算法
LF男男24 分钟前
Action- C# 内置的委托类型
java·开发语言·c#
练习时长一年34 分钟前
@NotEmpty注解引发的报错
java·服务器·前端
Irene199135 分钟前
数据发散(Data Spreading)详解(附:示例 数据发散最大值是笛卡尔乘积)
数据库
a95114164237 分钟前
c++如何解析二进制协议中的可选字段读取逻辑及其反序列化【详解】
jvm·数据库·python
weixin_580614001 小时前
golang如何实现时间格式化_golang时间格式化方法详解
jvm·数据库·python