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

力扣-查询近30天活跃用户数

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。

文章目录

  • 前言
  • 一、题目:1141. 查询近30天活跃用户数
  • 二、解题
    • 1.正确示范①
      • 提交SQL
      • 运行结果
    • 2.正确示范②
      • 提交SQL
      • 运行结果
    • 3.正确示范③
      • 提交SQL
      • 运行结果
    • 4.其他
  • 总结


前言


一、题目:1141. 查询近30天活跃用户数

活动记录表:Activity

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| user_id       | int     |
| session_id    | int     |
| activity_date | date    |
| activity_type | enum    |
+---------------+---------+
该表是用户在社交网站的活动记录。
该表没有主键,可能包含重复数据。
activity_type 字段为以下四种值 ('open_session', 'end_session', 'scroll_down', 'send_message')。
每个 session_id 只属于一个用户。

请写SQL查询出截至 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            |
+------------+--------------+ 
解释:注意非活跃用户的记录不需要展示。

二、解题

1.正确示范①

提交SQL

select activity_date day,count(distinct user_id) active_users
from Activity
where activity_date>'2019-06-27' and activity_date<='2019-07-27'
# activity_date>='2019-06-28' and activity_date<='2019-07-27'
group by activity_date

或者

select activity_date day,count(distinct user_id) active_users
from Activity
where activity_date>DATE_SUB('2019-07-27',INTERVAL 30 DAY)
and activity_date<='2019-07-27'
group by activity_date

或者

select activity_date day,count(distinct user_id) active_users
from Activity
where DATEDIFF('2019-07-27',activity_date)>=0 
and DATEDIFF('2019-07-27',activity_date) <30 
group by activity_date

运行结果

2.正确示范②

提交SQL

select activity_date day,count(distinct user_id) active_users
from Activity
where activity_date between '2019-06-28' and '2019-07-27'
# activity_date between DATE_SUB('2019-07-27',INTERVAL 29 DAY) and '2019-07-27'
group by activity_date

运行结果

3.正确示范③

提交SQL

select activity_date day,count(1) active_users
from(
select distinct activity_date,user_id
from Activity
where activity_date between '2019-06-28' and '2019-07-27'
) u
group by activity_date

运行结果

4.其他


总结

正确示范①思路:
先按活跃日期筛选
activity_date>‘2019-06-27’ and activity_date<=‘2019-07-27’
或者 activity_date>DATE_SUB(‘2019-07-27’,INTERVAL 30 DAY) and activity_date<=‘2019-07-27’
或者 DATEDIFF(‘2019-07-27’,activity_date)>=0 and DATEDIFF(‘2019-07-27’,activity_date) <30
再按活跃日期分组 group by activity_date
再取去重用户数 count(distinct user_id)
正确示范②思路:
将正确示范①中活跃日期筛选改为
activity_date between ‘2019-06-28’ and ‘2019-07-27’ ,其他不变;
正确示范③思路:
先按活跃日期筛选,将数据按distinct activity_date,user_id去重后,
再按活跃日期分组 group by activity_date
再取用户数 count(1)

相关文章:

力扣-查询近30天活跃用户数

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1141. 查询近30天活跃用户数二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.其他总结前言 一、题目&…...

企企通聚源池| 聚合海量资源全网寻源,赋能供采双方撮合交易

目前&#xff0c;我们正处于一个飞速发展的信息时代&#xff0c;随着大数据时代的来临&#xff0c;在企业的日常经营中&#xff0c;数据无处不在&#xff0c;各类数据的采集、整合、分析对企业的发展、决策有着十分重要的作用。数据管理作为企业一项重要的建设工作&#xff0c;…...

【算法数据结构体系篇class09】:链表问题:快慢指针、回文结构、复制、中点,分区、相交

一、链表解题的方法论 1)对于笔试&#xff0c;不用太在乎空间复杂度&#xff0c;一切为了时间复杂度2)对于面试&#xff0c;时间复杂度依然放在第一位&#xff0c;但是一定要找到空间最省的方法二、链表常用数据结构和技巧1&#xff09;使用容器(哈希表、数组等)2&#xff09;快…...

实验室信息化管理行业方案

为适应新时代下的管理机制与应用场景&#xff0c;越来越多的检测实验室需对研发部门和实验部门进行全面的、现代化的、电子化的综合管理&#xff0c;帮助检测机构对实验室的规划与计划、项目立项与管理、项目成果、合同&#xff0c;以及基建等工作进行统一的管理&#xff0c;而…...

docker学习

docker 环境搭建 MySql # mysql5.7 docker run --name mysql10 -p 3306:3306 -v D:\MySql\conf:/etc/mysql/conf.d -v D:\MySql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7docker run --name mysql10 -p 3306:3306 -v /etc/mysql/conf.d:/etc/mysql/co…...

Linux 常用命令

重启 # 重启&#xff08;root 用户操作&#xff09; reboot# 强制重启 reboot -f关机 # 关机 # shutdown [OPTION] [TIME] [MESSAGE] shutdown-h 关机 -r 重启-c 取消上一个命令 第二个参数指的是多少分钟后执行操作&#xff0c;以分钟为单位&#xff0c;如果不加时间&am…...

数据结构-顺序表(2)

目录 1. 线性表 2. 顺序表 2.1 动态顺序表 3. 接口实现 前期工作 3.1 初始化、销毁与检查容量 3.1.1 初始化 3.1.2 销毁 3.1.3 检查容量 3.2 尾插 3.3 尾删 3.4 头插 3.5 头删 3.6 插入 3.7 删除 顺序表源码 SeqList.h SeqList.c test.c 写在最后&#xff…...

初学C/C++内存管理--new和delete的使用

一&#xff0c;内存分布 栈区&#xff1a; 一般的局部变量和函数的返回数据以及返回地址&#xff0c;函数的参数都在战栈区上开辟空间。栈区开空间一般由编译器自动管理&#xff0c;出了生命周期自动释放。也可以通过一些方式自己手动开辟栈区空间&#xff0c;不过一般用不到…...

【Java】volatile

一、volatile volatile是Java虚拟机提供的轻量级的同步机制&#xff0c;它有&#xff13;个特性&#xff1a; &#xff11;&#xff09;保证可见性 &#xff12;&#xff09;不保证原子性 &#xff13;&#xff09;禁止指令重排 当写一个volatile变量时&#xff0c;JMM会把该…...

混沌工程 Chaos Mesh 实践经验(持续更新)

使用 k8s JVM故障 Linux内核版本 Linux 系统内核必须为 4.1 及以上版本。 不然会一直失败&#xff0c;可以从Chaos Mesh dashboard前端看到。 对native方法注入故障无效 实测对Thread.sleep(Long) 注入故障无效&#xff0c;猜测是因为对native方法无效&#xff0c;大概因为…...

追梦之旅【数据结构篇】——详解C语言实现链栈

详解C语言实现链栈~&#x1f60e;前言&#x1f64c;整体实现内容分析&#x1f49e;1.头文件编码实现&#x1f64c;2.功能文件编码实现&#x1f64c;3.测试函数功能代码&#x1f64c;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右…...

oracle数据库常用操作

1.连接登录切换用户su - oracle以管理员模式登录到sqlplus&#xff1a;sqlplus / as sysdba oracle登录身份有三种&#xff1a;1.1Normal 普通身份&#xff1b;1.2.sysdba 系统管理员身份&#xff1b;若以 ‘sysdba’ 方式认证&#xff0c;登录用户为 ‘SYS’&#xff0c;为 Or…...

一文教会你如何在Linux系统中使用Docker安装Redis 、以及如何使用可视化工具连接【详细过程+图解】

文章目录1、安装redis2、在外部创建配置文件3、创建redis4、启动测试redis5、数据持久化存储6、使用可视化工具连接redis前言在windows上安装过reids、在linux上也安装过redis&#xff0c;但是都没有docker上安装redis方便。这里给出docer安装redis的相关教程1、安装redis 默认…...

mysql 内存架构

1. 背景 从 innodb 的整体架构中可以知道 innodb 的内存架构中分为 buffer pool 缓存区, change pool 修改缓冲区, adaptive hash index 自适应哈希索引, 和 log buffer 日志缓冲区. 2. buffer pool buffer pool 是用于缓冲磁盘页的数据&#xff0c;mysql 的80%的内存会分配给…...

Helm安装Harbor

一、介绍 1.1 Harbor Harbor 是由 VMware 公司为企业用户设计的 Registry Server 开源项目&#xff0c;包括了权限管理 (RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能&#xff0c;同时针对中国用户的特点&#xff0c;设计镜像复制和中文支持等功能。目前该项…...

梯度下降优化器:SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam -> AdamW

目录 1 前言 2 梯度概念 3 一般梯度下降法 4 BGD 5 SGD 6 MBGD 7 Momentum 8 SGDM&#xff08;SGD with momentum&#xff09; 9 NAG(Nesterov Accelerated Gradient) 10 AdaGrad 11 RMSProp 12 Adadelta 13 Adam 13 Nadam 14 AdamW 15 Lion&#xff08;EvoLve…...

Ubuntu下gcc多版本管理

Ubuntu下多gcc版本的管理 开发过程中&#xff0c;在编译一个开源项目时&#xff0c;由于代码使用的c版本过高&#xff0c;而系统内置的gcc版本过低时&#xff0c;这个时候我们就需要升级gcc版本&#xff0c;但是为了避免兼容性问题&#xff0c;安装多个版本的gcc&#xff0c;然…...

吃透8图1模板,人人可以做架构

前言 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴问尼恩&#xff1a; 大佬&#xff0c;我们写架构方案&#xff0c; 需要从哪些方面展开 大佬&#xff0c;我们写总体设计方案需要一些技术亮点&#xff0c;可否发一些给我参考下 诸如此类&#xff0c;问法很多…...

骨传导耳机推荐哪款好,列举几款是市面上热销的骨传导耳机

​骨传导耳机是一种新型的耳机类型&#xff0c;通过震动和声音将振动传到了耳道外&#xff0c;对耳道不会产生损伤&#xff0c;能够保护听力。相比于传统耳机的优势有很多&#xff0c;比如运动时佩戴更加稳固&#xff0c;也可以在听歌时与人交谈。但在市面上的骨传导耳机款式可…...

CFS三层内网渗透

目录 环境搭建 拿ubuntu主机 信息收集 thinkphp漏洞利用 上线msf 添加路由建立socks代理 bagecms漏洞利用 拿下centos主机 msf上线centos 添加路由&#xff0c;建立socks代理 拿下win7主机 环境搭建 设置三块虚拟网卡 开启虚拟机验证&#xff0c;确保所处网段正确&a…...

AI Agent Harness Engineering:大模型之后的下一个技术爆发点

AI Agent Harness Engineering&#xff1a;大模型之后的下一个技术爆发点一、引言 1.1 钩子&#xff1a;从“大模型的局限性”到“人类解放双手的终极形态” 你是否有过这样的经历&#xff1f; 上周为了赶一份季度数据分析报告&#xff0c;你打开了GPT-4&#xff1a;先让它帮你…...

准最优最小二乘框架:破解PDE非齐次边界数值求解难题

1. 项目概述&#xff1a;当最小二乘遇上非齐次边界——一个准最优框架的构建在偏微分方程&#xff08;PDE&#xff09;的数值求解领域&#xff0c;最小二乘法一直以其数学上的优雅和稳定性吸引着研究者。其核心思想直白而有力&#xff1a;将微分方程问题转化为一个最小化残差范…...

基于决策树与贝叶斯DNS的宏观机制转换利率模型

1. 项目概述与核心价值如果你在固收研究或者宏观交易领域待过一段时间&#xff0c;肯定会遇到一个让人头疼的问题&#xff1a;那些经典的收益率曲线模型&#xff0c;比如动态Nelson-Siegel模型&#xff0c;在样本内拟合得挺好&#xff0c;但一到样本外预测或者解释某些特殊时期…...

AI司法应用中的算法公平性:从数据偏见到保护属性选择的技术实践

1. 项目概述&#xff1a;当算法开始“断案”&#xff0c;公平性成了第一道坎最近几年&#xff0c;AI系统在司法领域的渗透速度远超很多人的想象。从辅助量刑建议、评估再犯风险&#xff0c;到自动化审阅海量卷宗&#xff0c;算法正试图将法官和检察官从繁重的重复性劳动中解放出…...

大语言模型作为人类行为研究工具:从原理到实践

1. 从“模仿”到“理解”&#xff1a;AI研究范式的悄然转向最近和几位做社会学和心理学研究的朋友聊天&#xff0c;发现一个挺有意思的现象&#xff1a;他们实验室的电脑屏幕上&#xff0c;除了SPSS、R语言的分析窗口&#xff0c;越来越多地出现了像ChatGPT、Claude这样的对话界…...

Windows 11系统下,Fiddler代理端口不是8888?这份Mumu模拟器网络调试避坑指南请收好

Windows 11系统下Fiddler与Mumu模拟器网络调试实战指南在移动应用开发和测试过程中&#xff0c;网络调试工具与模拟器的配合使用是必不可少的环节。许多开发者习惯性地认为Fiddler的默认代理端口就是8888&#xff0c;但在实际配置中&#xff0c;这个假设往往会导致一系列难以排…...

2024三星固件下载完整指南:Bifrost跨平台工具终极解决方案

2024三星固件下载完整指南&#xff1a;Bifrost跨平台工具终极解决方案 【免费下载链接】Bifrost Cross-platform tool for downloading Samsung mobile device firmware. 项目地址: https://gitcode.com/gh_mirrors/sa/Bifrost 还在为三星设备固件下载而烦恼吗&#xff…...

Lindy企业流程自动化实施全周期拆解:从0到1上线仅需14天的关键5步法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lindy企业流程自动化实施全周期拆解&#xff1a;从0到1上线仅需14天的关键5步法 Lindy 作为轻量级、高可扩展的流程自动化平台&#xff0c;其核心优势在于将复杂的企业级RPA与低代码逻辑深度融合&#…...

CANN-ATB量化推理-昇腾NPU上W8A8量化为什么比W4A16更实用

Llama2-70B 权重 140GB&#xff0c;8 卡 TP 刚好放得下但没什么余量给 KV Cache。W8A8 量化把权重从 fp16 压到 int8&#xff0c;权重体积减半&#xff0c;4 卡就能跑 70B。W4A16 理论上压得更狠&#xff08;4 倍压缩&#xff09;&#xff0c;但精度损失在实际业务里往往不可接…...

独立开发者如何利用 Taotoken 的 Token Plan 套餐以更优成本启动 AI 项目

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何利用 Taotoken 的 Token Plan 套餐以更优成本启动 AI 项目 对于独立开发者或小型工作室而言&#xff0c;在项目启动…...