SQL查询连续登陆7天以上的用户的方法实现

作者:kww 时间:2024-01-18 10:16:44 

查询7天连续登陆用户这个问题很经典,解决方法也有很多,这里我讲一下笔者的方法,希望对大家有帮助。

具体思路:

1、因为每天用户登录次数可能不止一次,所以需要先将用户每天的登录日期去重。

2、再用row_number() over(partition by _ order by _)函数将用户id分组,按照登陆时间进行排序。

3、计算登录日期减去第二步骤得到的结果值,用户连续登陆情况下,每次相减的结果都相同。

4、按照id和日期分组并求和,筛选大于等于7的即为连续7天登陆的用户。

表信息如下图

SQL查询连续登陆7天以上的用户的方法实现

第一步:用户登录日期去重


select DISTINCT date(date) as 日期,id from orde;

结果为:

SQL查询连续登陆7天以上的用户的方法实现

第二步:用row_number() over()函数计数


select *,row_number() over(PARTITION by id order by 日期) as cum from (select DISTINCT date(date) as 日期,id from orde)a;

结果为:

SQL查询连续登陆7天以上的用户的方法实现

第三步:日期减去计数值得到结果


select *,date(日期)-cum as 结果 from (select *,row_number() over(PARTITION by id order by 日期) as cum from (select DISTINCT date(date) as 日期,id from orde)a)b;

结果:

SQL查询连续登陆7天以上的用户的方法实现

第四步:根据id和结果分组并计算总和,大于等于7的即为连续登陆7天的用户


select id,count(*) from (select *,date(日期)-cum as 结果 from (select *,row_number() over(PARTITION by id order by 日期) as cum from (select DISTINCT date(date) as 日期,id from orde)a)b)c GROUP BY id,结果 having count(*)>=7;

结果为:

SQL查询连续登陆7天以上的用户的方法实现

用了多次嵌套查询,最终得到我们需要的结果。

来源:https://www.cnblogs.com/ikww/p/12012831.html

标签:SQL,查询,连续,登陆,用户
0
投稿

猜你喜欢

  • 用Python实现读写锁的示例代码

    2022-09-19 13:51:01
  • python中numpy.zeros(np.zeros)的使用方法

    2023-10-08 17:40:07
  • 详解使用Pytorch Geometric实现GraphSAGE模型

    2021-09-30 21:30:18
  • Python实现的文本简单可逆加密算法示例

    2023-06-05 07:35:11
  • Node.js(安装,启动,测试)

    2024-05-13 09:29:28
  • 用js实现放大镜效果

    2023-09-19 18:29:29
  • Python HTTP客户端自定义Cookie实现实例

    2023-12-16 01:19:30
  • GO语言中接口和接口型函数的具体使用

    2023-06-18 09:08:40
  • vue前端项目打包成Docker镜像并运行的实现

    2023-07-02 17:05:55
  • MySQL的一级防范检查列表

    2011-12-14 18:39:22
  • ASP中的Debug类--VBScript

    2008-10-24 09:38:00
  • Javascript中的arguments对象

    2024-04-30 09:50:54
  • Jsp+Servlet实现文件上传下载 删除上传文件(三)

    2023-06-27 16:29:29
  • 数据库主键的故事

    2008-05-31 07:50:00
  • JavaScript中windows.open()、windows.close()方法详解

    2024-04-18 09:30:57
  • 解读等值线图的Python绘制方法

    2021-11-21 19:54:08
  • 如何通过python计算圆周率PI

    2021-01-24 10:29:25
  • python实现员工管理系统

    2022-01-03 05:20:15
  • Python小程序之在图片上加入数字的代码

    2023-11-14 08:26:48
  • CSS网页设计时关于字体大小的设计

    2008-10-23 13:42:00
  • asp之家 网络编程 m.aspxhome.com