SQL怎么查询连续登录的用户情况
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"SQL怎么查询连续登录的用户情况",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SQL怎么查询连续登录的用户情况"这篇文章吧。以连
千家信息网最后更新 2026年11月03日SQL怎么查询连续登录的用户情况
这篇文章主要为大家展示了"SQL怎么查询连续登录的用户情况",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SQL怎么查询连续登录的用户情况"这篇文章吧。
以连续3天为例,使用工具:MySQL。
1.创建SQL表:
create table if not exists orde(id varchar(10),date datetime,orders varchar(10));insert into orde values('1' , '2019/1/1',10 );insert into orde values('1' , '2019/1/2',109 );insert into orde values('1' , '2019/1/3',150 );insert into orde values('1' , '2019/1/4',99);insert into orde values('1' , '2019/1/5',145);insert into orde values('1' , '2019/1/6',1455);insert into orde values('1' , '2019/1/7',199);insert into orde values('1' , '2019/1/8',188 );insert into orde values('4' , '2019/1/1',10 );insert into orde values('2' , '2019/1/2',109 );insert into orde values('3' , '2019/1/3',150 );insert into orde values('4' , '2019/1/4',99);insert into orde values('5' , '2019/1/5',145);insert into orde values('6' , '2019/1/6',1455);insert into orde values('7' , '2019/1/7',199);insert into orde values('8' , '2019/1/8',188 );insert into orde values('9' , '2019/1/1',10 );insert into orde values('9' , '2019/1/2',109 );insert into orde values('9' , '2019/1/3',150 );insert into orde values('9' , '2019/1/4',99);insert into orde values('9' , '2019/1/6',145);insert into orde values('9' , '2019/1/9',1455);insert into orde values('9' , '2019/1/10',199);insert into orde values('9' , '2019/1/13',188 );查看数据表:

2.使用row_number() over() 排序函数计算每个id的排名,SQL如下:
select *,row_number() over(partition by id order by date ) 'rank'from ordewhere orders is not NULL;
查看数据表:

3.将date日期字段减去rank排名字段,SQL如下:
select *,DATE_SUB(a.date,interval a.rank day) 'date_sub'from(select *,row_number() over(partition by id order by date ) 'rank'from ordewhere orders is not NULL) a;
查看数据:
4.根据id和date分组并计算分组后的数量(count)、计算最早登录和最晚登录的时间,SQL如下:
select b.id,min(date) 'start_time',max(date) 'end_time',count(*) 'date_count'from(select *,DATE_SUB(a.date,interval a.rank day) 'date_sub'from(select *,row_number() over(partition by id order by date ) 'rank'from ordewhere orders is not NULL) a) bgroup by b.date_sub,idhaving count(*) >= 3;
查看数据:
以上是"SQL怎么查询连续登录的用户情况"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
登录
数据
情况
用户
查询
内容
篇文章
字段
数据表
分组
学习
帮助
函数
工具
数量
日期
时间
易懂
更多
条理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
科技金融是不是互联网金融
互联网科技财经
互联网科技会
互联网科技垄断
互联网与科技金融数据
互联网医疗科技
科技服务与互联网
奇酷互联网科技
奇酷互联网络科技公司
壕鑫互联网络科技
互联网女皇 腾讯科技
互联网系的金融科技公司
荆州市昕露互联网络科技有限公司
互联网媒体平台算高科技产业
中国互联网公司排名锤子科技
翼展科技 首家互联网医院
21世纪互联网科技成就
南京一网一红互联网科技有限公司
吉林省码上互联网科技电话
喔噻互联网科技有限公司
互联网科技公司简介
科技互联网产品
科技金融是不是互联网金融
互联网科技有限公司经营范围
互联网科技与金融科技
万达互联网科技
科技大学互联网专业好不好
天津腾达互联网科技有限公司
互联网公司高科技产品