SQL 计算最长连续登录天数

Posted 从前有座山,山上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 计算最长连续登录天数相关的知识,希望对你有一定的参考价值。

参考:https://blog.csdn.net/ganghaodream/article/details/100083543

SQL计算最长登录天数

计算最长登陆天数主要用两个函数:1.窗口函数row_number()over() 2.date_sub()

1.使用row_number()窗口函数

select UID,loadtime,row_number()over(partition by UID order by loadtime) sort
from user_login

2.使用date_sub()函数

select UID,date_sub(loadtime,sort) as date_group,min(loadtime) as start, max(loadtime) as end ,count(1) as continue_days
      (select UID,loadtime,row_number()over(partition by UID order 	  by loadtime) sort
       from user_login
      ) a
group by UID,date_sub(loadtime,sort)

3.以UID分组,取max(continue_days)

select UID,max(continue_days) as maxday
      (select UID,date_sub(loadtime,sort) as 	 date_group,min(loadtime) as start, max(loadtime) as end ,count(1) as continue_days
            (select UID,loadtime,row_number()over(partition by UID order by loadtime) sort
	     from user_login
    	    ) a
       group by UID,date_sub(loadtime,sort)
      ) b
group by UID

以上是关于SQL 计算最长连续登录天数的主要内容,如果未能解决你的问题,请参考以下文章

SQL(之二)-查询“最长连续登录天数“

spark sql 连续登录最大天数

Hive计算最大连续登陆天数

hive sql之:最大登录天数,获取连续登录指定天数

SQL:连续天数的计算方法

在 SQL 中计算连续班次和天数