SQL-01求连续七天登陆的用户

连续七天登录

数据准备

java 复制代码
CREATE TABLE `user_login` (
  `id` int NOT NULL AUTO_INCREMENT,
  `user_id` int DEFAULT NULL,
  `login_date` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

#插入数据
INSERT INTO study.user_login (user_id,login_date) VALUES 
(100,'2023-10-01 00:00:00.0')
,(100,'2023-10-02 00:00:00.0')
,(100,'2023-10-03 00:00:00.0')
,(100,'2023-10-04 00:00:00.0')
,(100,'2023-10-05 00:00:00.0')
,(100,'2023-10-06 00:00:00.0')
,(100,'2023-10-07 00:00:00.0')
,(100,'2023-10-07 00:00:00.0')
,(200,'2023-10-20 00:00:00.0')
,(200,'2023-10-22 00:00:00.0')
;
INSERT INTO study.user_login (user_id,login_date) VALUES 
(200,'2023-10-23 00:00:00.0')
;

SQL

sql 复制代码
select 
	log_date,
	user_id from 
(
	select 
		*,
		date_sub(log_date,interval rank_num day) real_date
	from 
		(
				select 
					*,
					row_number() over (partition by user_id order by log_date ) as rank_num
				from  
				(
					select 
						distinct date(login_date) as log_date ,user_id
					from study.user_login 
				 ) a
		) b
) c
group by real_date, user_id HAVING COUNT(*) >=7 

请自行观察结果

相关推荐
YDS82918 小时前
黑马点评 —— 分布式锁详解加源码剖析
java·spring boot·redis·分布式
ZTLJQ18 小时前
数据的基石:Python中关系型数据库完全解析
开发语言·数据库·python
迷藏49418 小时前
**发散创新:基于 Rust的开源权限管理系统设计与实战**在现代软件架构中,**权限控制**早已不
java·开发语言·rust·开源
升鲜宝供应链及收银系统源代码服务18 小时前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
daidaidaiyu19 小时前
Nacos实例一则及其源码环境搭建
java·spring
跟着珅聪学java19 小时前
js编写中文转unicode 教程
前端·javascript·数据库
小江的记录本19 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存
摇滚侠19 小时前
Java 项目《谷粒商城-1》架构师级Java 项目实战,对标阿里 P6-P7,全网最强,实操版本
java·开发语言
还是做不到嘛\.19 小时前
Dvwa靶场-SQL Injection
数据库·sql·web安全
zihao_tom19 小时前
Spring Boot(快速上手)
java·spring boot·后端