Login
网站首页 > 文章中心 > 其它

sql 连续活跃天数_sql最大连续登录天数

作者:小编 更新时间:2023-10-01 15:55:29 浏览量:332人看过

1. 背景

sql 连续活跃天数_sql最大连续登录天数

2. 步骤

第一步:处理数据集处理数据集,使其满足每个uid每个日期只有一条数据.第二步:以uid为主键,按照日期进行排序,计算row_number.


SELECT  uid
      ,◆征信查询日期◆
      ,ROW_NUMBER() OVER(PARTITION BY uid ORDER BY ◆征信查询日期◆ ASC) AS ◆rn◆
      ,first_value(◆征信查询日期◆)over(PARTITION BY uid ORDER BY ◆征信查询日期◆ ASC) ◆fir◆
      ,first_value(◆征信查询日期◆)over(PARTITION BY uid ORDER BY ◆征信查询日期◆ desc) ◆las◆
FROM   input


sql 连续活跃天数_sql最大连续登录天数

两个关键点:

序号rn可以看做一直活跃的情况下,活跃日期最大值和活跃日期最小值之间的天数差.那么,日期最大值与日期最小值之差如果不等于序号,就表明中间有不连续.


select *,DATE_SUB(◆征信查询日期◆,◆rn◆) as ◆关键列◆ from (
SELECT  uid
      ,◆征信查询日期◆
      ,ROW_NUMBER() OVER(PARTITION BY uid ORDER BY ◆征信查询日期◆ ASC) AS ◆rn◆
      ,first_value(◆征信查询日期◆)over(PARTITION BY uid ORDER BY ◆征信查询日期◆ ASC) ◆fir◆
      ,first_value(◆征信查询日期◆)over(PARTITION BY uid ORDER BY ◆征信查询日期◆ desc) ◆las◆
FROM   input)


sql 连续活跃天数_sql最大连续登录天数


select uid, ◆关键列◆,count(*) as ◆连续活跃天数◆, min(◆征信查询日期◆) as ◆活跃开始时间◆, max(◆征信查询日期◆) as ◆活跃结束时间◆ from (
select *, DATE_SUB(◆征信查询日期◆,◆rn◆) as ◆关键列◆ from (
SELECT  uid
      ,◆征信查询日期◆
      ,ROW_NUMBER() OVER(PARTITION BY uid ORDER BY ◆征信查询日期◆ ASC) AS ◆rn◆
      ,first_value(◆征信查询日期◆)over(PARTITION BY uid ORDER BY ◆征信查询日期◆ ASC) ◆fir◆
      ,first_value(◆征信查询日期◆)over(PARTITION BY uid ORDER BY ◆征信查询日期◆ desc) ◆las◆
FROM   input
  ) )group by uid, ◆关键列◆


sql 连续活跃天数_sql最大连续登录天数

以上就是土嘎嘎小编为大家整理的sql 连续活跃天数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章