SQL 查询连续登录的用户情况

 更新时间:2021年12月31日 11:31:57   作者: LUC   
这篇文章主要介绍了SQL 查询连续n天登录的用户情况,本文以3天为例,通过使用mysql工具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 orde
where 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 orde
where 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 orde
where orders is not NULL
) a
) b
group by b.date_sub,id
having count(*) >= 3
;

 查看数据:

参考资料: 

SQL查询连续七天以上下单的用户

https://blog.csdn.net/qq_43807789/article/details/99091753?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.highlightwordscore&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~default-1.highlightwordscore

到此这篇关于SQL 查询连续n天登录的用户情况的文章就介绍到这了,更多相关SQL 查询用户连续登录情况内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Microsoft SQL Server数据库各版本下载地址集合

    Microsoft SQL Server数据库各版本下载地址集合

    这篇文章主要介绍了Microsoft SQL Server数据库各版本下载地址集合,需要的朋友可以参考下
    2020-10-10
  • SQL Server配置管理器无法连接到WMI提供程序

    SQL Server配置管理器无法连接到WMI提供程序

    这篇文章主要介绍了SQL Server配置管理器无法连接到WMI提供程序,提示您没有权限或者该服务器无法访问,如何解决?
    2016-11-11
  • SQL中 and or in的用法小结

    SQL中 and or in的用法小结

    这篇文章主要介绍了SQL中 and or in的用法小结,IN运算符允许您在WHERE子句中指定多个值,IN运算符是多个OR条件的简写,本文结合实例代码介绍的非常详细,感兴趣的朋友一起看看吧
    2024-04-04
  • SQL Server误区30日谈 第26天 SQL Server中存在真正的“事务嵌套”

    SQL Server误区30日谈 第26天 SQL Server中存在真正的“事

    嵌套事务可不会像其语法表现的那样看起来允许事务嵌套。我真不知道为什么有人会这样写代码,我唯一能够想到的就是某个哥们对SQL Server社区嗤之以鼻然后写了这样的代码说:“玩玩你们”
    2013-01-01
  • SQLServer用存储过程实现插入更新数据示例

    SQLServer用存储过程实现插入更新数据示例

    这篇文章主要介绍了SQLServer如何用存储过程实现插入更新数据,需要的朋友可以参考下
    2014-08-08
  • SQL Server全文检索查询浅析

    SQL Server全文检索查询浅析

    因为项目需要,需要对上传的文件内容进行查询。通过MSDN了解到Windows索引服务可以实现对文件的全文检索,并可以通过SQL Server进行查询。项目将这两者结合,实现对上传文件的全文检索的解决方案。
    2009-11-11
  • 亲自教你使用 ChatGPT 编写 SQL JOIN 查询示例

    亲自教你使用 ChatGPT 编写 SQL JOIN 查询示例

    这篇文章主要介绍了使用ChatGPT编写SQL JOIN查询,作为一种语言模型,ChatGPT 可以就如何构建复杂的 SQL 查询和 JOIN 提供指导和建议,但它不能直接访问 SQL 数据库,它可以帮助您了解语法、最佳实践和有关如何构建查询以高效执行的一般指导,需要的朋友可以参考下
    2023-02-02
  • SQL Server 总结复习 (二)

    SQL Server 总结复习 (二)

    SQL Server 总结复习,学习sqlserver的朋友可以参考下
    2012-08-08
  • PLSQL连接oracle数据库过程图解

    PLSQL连接oracle数据库过程图解

    这篇文章主要介绍了PLSQL连接oracle数据库过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2008-02-02
  • SQL Server数据库之备份和恢复数据库

    SQL Server数据库之备份和恢复数据库

    在一些对数据可靠性要求很高的行业,若发生意外停机或数据丢失,其损失是十分惨重的,因此,本文详细介绍了数据库备份和恢复数据库方法,感兴趣的同学可以借鉴一下
    2023-03-03

最新评论