当前位置: 首页 > article >正文

SQL-leetcode—1141. 查询近30天活跃用户数

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

表:Activity

±--------------±--------+
| Column Name | Type |
±--------------±--------+
| user_id | int |
| session_id | int |
| activity_date | date |
| activity_type | enum |
±--------------±--------+
该表没有包含重复数据。
activity_type 列是 ENUM(category) 类型, 从 (‘open_session’, ‘end_session’, ‘scroll_down’, ‘send_message’) 取值。
该表记录社交媒体网站的用户活动。
注意,每个会话只属于一个用户。

编写解决方案,统计截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)。

以 任意顺序 返回结果表。

结果示例如下。

示例 1:

输入:
Activity table:
±--------±-----------±--------------±--------------+
| user_id | session_id | activity_date | activity_type |
±--------±-----------±--------------±--------------+
| 1 | 1 | 2019-07-20 | open_session |
| 1 | 1 | 2019-07-20 | scroll_down |
| 1 | 1 | 2019-07-20 | end_session |
| 2 | 4 | 2019-07-20 | open_session |
| 2 | 4 | 2019-07-21 | send_message |
| 2 | 4 | 2019-07-21 | end_session |
| 3 | 2 | 2019-07-21 | open_session |
| 3 | 2 | 2019-07-21 | send_message |
| 3 | 2 | 2019-07-21 | end_session |
| 4 | 3 | 2019-06-25 | open_session |
| 4 | 3 | 2019-06-25 | end_session |
±--------±-----------±--------------±--------------+
输出:
±-----------±-------------+
| day | active_users |
±-----------±-------------+
| 2019-07-20 | 2 |
| 2019-07-21 | 2 |
±-----------±-------------+
解释:注意非活跃用户的记录不需要展示。

题解

统计截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)。

  • 最近30天,截止2019-07-27, between and 、date_add
  • 用户数,分区+count distinct即可

方法一 where+date_add

select
    activity_date as day,
    count(distinct user_id) as active_users
from Activity where activity_date between date_add('2019-07-27',interval -29 DAY) and '2019-07-27' group by activity_date

比较简单就这样吧


http://www.kler.cn/a/513539.html

相关文章:

  • Jenkins-获取build用户信息
  • C++ ——— 模拟实现 vector 类
  • Oracle 深入学习 Part 14:Managing Password Security and Resources(管理密码安全性和资源)
  • 数据结构——栈
  • 整数的分离与合成
  • N个utils(sql)
  • 在亚马逊云科技上用AI提示词优化功能写出漂亮提示词(下)
  • css动画水球图
  • 【数学建模美赛速成系列】O奖论文绘图复现代码
  • VM模块开发 C++ 工程配置
  • “大模型横扫千军”背后的大数据挖掘--浅谈MapReduce
  • Spring Boot + Netty + WebSocket 实现消息推送
  • 深挖——final
  • 分布式搜索引擎02
  • Emacs折腾日记(十一)——求值规则
  • EXCEL的一些用法记录
  • 每日一刷——1.20——准备蓝桥杯
  • 【全栈】SprintBoot+vue3迷你商城(5)
  • 经验收录/用复盘的心态去学习
  • Stable Diffusion 提示词编写技巧及示例
  • 4.6.3递归算法
  • RTK定位
  • 常用排序算法之插入排序
  • Linux_线程概念
  • CentOS 7 下安装RabbitMQ教程_centos启动rabbitmq
  • 分享源代码防泄露实战经验