43. 间断连续登录用户问题
文章目录
- 题目需求
- 思路一
- 实现一
- 题目来源
题目需求
现有各用户的登录记录表(login_events)如下,表中每行数据为:一个用户何时登录了平台。
现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如:一个用户在1,3,5,6登录,则视为连续6天登录。
期望结果如下(截取部分):
user_id (用户id) | max_day_count (最大连续天数) |
---|---|
100 | 3 |
101 | 6 |
102 | 3 |
104 | 3 |
105 | 1 |
需要用到的表:
用户的登录记录表:login_events
user_id | login_datetime |
---|---|
100 | 2021-12-01 19:00:00 |
100 | 2021-12-01 19:30:00 |
100 | 2021-12-02 21:01:00 |
思路一
实现一
-- 3) 计算日期差
select user_id,-- 统计每个用户每次连续登录的日期聚合-- collect_set(login_datetime)datediff(collect_set(login_datetime)[size(collect_set(login_datetime)) - 1], collect_set(login_datetime)[0]) +1 as max_day_count
from (-- 2) 求 sumselect user_id,login_datetime,sum(flag) over (partition by user_id order by login_datetime) as sumfrom (select user_id,-- 本地登录时间date_format(login_datetime, 'yyyy-MM-dd') as login_datetime,-- 1.1) 获取该用户上次登录时间-- 1.2)计算该用户 (本次登录时间 - 上次登录时间), if(本次登录时间 - 上次登录时间) > 2, 标记为1(不连续登录标记),否则为0if(datediff(date_format(login_datetime, 'yyyy-MM-dd'),-- 注意: 不可以使用不存在的日期,例如 '0000-00-00'lag(date_format(login_datetime, 'yyyy-MM-dd'), 1, '0001-01-01')over (partition by user_id order by login_datetime)) > 2, 1, 0) as flagfrom login_events) t1) t2
group by user_id, sum;
题目来源
http://practice.atguigu.cn/#/question/43/desc?qType=SQL
相关文章:

43. 间断连续登录用户问题
文章目录 题目需求思路一实现一题目来源 题目需求 现有各用户的登录记录表(login_events)如下,表中每行数据为:一个用户何时登录了平台。 现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如&a…...

Visual Studio Code 编辑器实用插件简介
Visual Studio Code 编辑器插件 以下是一些常用的 Visual Studio Code 编辑器插件及其简短描述: 2gua.rainbow-brackets:在括号周围添加彩虹色的边框,以帮助区分不同层次的括号。adpyke.codesnap:将代码片段转换为漂亮的图片&am…...

微信小程序之Image那些事
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、使用场景二、使用方式1.动态读取image大小2.动态设置style3.动态赋值 总结 前言 小程序中 Image使用频率是非常高的 不同场景下 Image使用的属性也不一样 …...

【MySQL】不就是子查询
前言 今天我们来学习多表查询的下一个模块——子查询,子查询包括了标量子查询、列子查询、行子查询、表子查询,话不多说我们开始学习。 目录 前言 目录 一、子查询 1. 子查询的概念 2. 子查询语法格式 2.1 根据子查询结果不同可以分为:…...

gpt4实现对摄像头帧缓冲区图像的LAB阈值选择界面(python-opencv)
代码全是GPT4写的,我就提出Prompt和要改的地方而已。 图形界面效果 可复制阈值:(xxx, xxx, xxx, xxx, xxx, xxx) 代码 import cv2 import numpy as np import time from tkinter import * from PIL import Image, ImageTk import pyperclip # new# G…...

Stable Diffusion WebUI 集成 LoRA模型,给自己做一张壁纸 Ubuntu22.04 rtx2060 6G
LoRA概念 LoRA的全称是LoRA: Low-Rank Adaptation of Large Language Models,可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训…...

Flink 读写Kafka总结
前言 总结Flink读写Kafka Flink 版本 1.15.4 Table API 本文主要总结Table API的使用(SQL),官方文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/connectors/table/kafka/ kerberos认证相关配置 …...
LiDAR SLAM 闭环——BoW3D论文详解
标题:BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM 作者:Yunge Cui,Xieyuanli Chen,Yinlong Zhang,Jiahua Dong,Qingxiao Wu,Feng Zhu 机构:中科院沈阳自动化研究所 来源:2022 RAL 现算法已经开源&#…...

Android NTP时间同步源码分析
Android NTP时间同步源码分析 Android系统设置自动时间后,如果连接了可用的网络。会同步网络时间。这个处理是 NetworkTimeUpdateService完成的。某些定制化的系统,需要禁止网络时间同步。比如仅仅使用GPS时间。基于Android9,分析一下 Andro…...

数据库之MySQL字符集与数据库操作
目录 字符集 CHRARCTER SET 与COLLATION的关联 CHRARCTER SET 定义 基础操作 查看当前MySQL Server支持的 CHARACTER SET 查看特定字符集信息(主要包含默认的COLLATION 与 MAXLEN) COLLATION 定义 COLLATION后缀 基础操作 查看MySQL Server支持的…...

搜索引擎概念解析
搜索引擎概念解析 什么是搜索引擎 MySQL搜索引擎举例 搜索引擎是一种用于在互联网上搜索并呈现相关信息的工具。它通过自动扫描和索引大量网页内容,并根据用户提供的关键词或查询条件,返回与之相关的网页链接和摘要。 当用户在搜索引擎中输入关键词或…...

网页链接投票链接步骤公众号投票链接制作制作投票
大家在选择投票小程序之前,可以先梳理一下自己的投票评选活动是哪种类型,目前有匿名投票、图文投票、视频投票、赛事征集投票等。 我们现在要以“笛乐悠扬”为主题进行一次投票活动,我们可以在在微信小程序搜索,“活动星”投票小程…...
【通信安全CACE-管理类基础级】第7章 安全运维
资源 中国通信企业协会网络安全人员能力认证考试知识点大纲 中国通信企业协会网络安全人员能力认证管理类基础级考试课件 中国通信企业协会网络安全人员能力认证考试管理类基础级复习资料 中国通信企业协会网络安全人员能力认证考试管理类基础级模拟题 系列文章 【通信安全CAC…...
随手笔记——将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布(Python版)
随手笔记——将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布(Python版) 说明关键函数代码 说明 将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布,主要通过CvBridge的cv2_to_imgmsg和imgmsg_to_cv2函数࿰…...

Win11系统如何安装Oracle数据库(超级详细)
前言:在我们安装Oracle之前我们得理解Oracle数据库的优点是什么: Oracle是一个功能强大、可扩展和全面的数据库平台,具有广泛的功能和企业级能力,适用于处理复杂的企业级应用和大型数据集。 目录 一.下载Oracle数据库软件&…...

【代理服务器】Squid 反向代理与Nginx缓存代理
目录 一、Squid 反向代理1.1工作机制1.2反向代理实验1.3清空iptables规则,关闭防火墙1.4验证 二、使用Nginx做反向代理缓存服务器三CDN简介3.1什么是CDN3.1CDN工作原理 一、Squid 反向代理 如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的…...

目标检测之遮挡物体检测
一、遮挡的类别 类内遮挡,目标被同一类别的目标遮挡类间遮挡,目标被其它类别的目标遮挡 二、解决方法 数据标注 精调遮挡目标的GT边界框 数据增强 cutout:在训练时,随机mask目标,提升模型对遮挡的应对能力mosaic…...
Vim 命令大全
文章目录 Vim 命令大全移动光标编辑文本查找和替换保存和退出打开多个文件:在文件之间切换:打开新窗口切换窗口其他常用命令 Vim 命令大全 移动光标 h: 左移光标j: 下移光标k: 上移光标l: 右移光标0: 移动光标到行首$: 移动光标到行末G: 移动光标到文件…...

【Visual Studio】printf() 函数无输出显示问题。使用 C++ 语言,配合 Qt 开发串口通信界面
使用 C 语言,配合 Qt 开发串口通信界面时,遇到 printf() 函数无输出显示。 在工程属性的对应位置添加 editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\$(ProjectName).exe 即可,如下图所示。 成功运行的截图如下: Ref. Visual Studio 20…...

Linux安装配置Oracle+plsql安装配置(详细)
如果觉得本文不够详细,没有效果图,可移步详细版: Linux安装配置Oracleplsql安装配置(超详细)_超爱慢的博客-CSDN博客 目录 1.安装虚拟机系统 1.安装虚拟机 2.配置虚拟机 1.设置机器名 2.修改域名映射 3.固定IP…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...