zoukankan      html  css  js  c++  java
  • 连续登陆天数+最大登陆天数

    转载:https://www.cnblogs.com/jiaxinwei/p/13936273.html

    SQL计算最长登录天数

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

    1.使用row_number()窗口函数

    1 select 
    2     UID,
    3     loadtime,
    4     row_number()over(partition by UID order by loadtime) sort
    5 from 
    6     user_login

    2.使用date_sub()函数

    --取每个用户的连续登陆天数
    1
    select 2 UID, 3 date_sub(loadtime,sort) as date_group, --拿登陆时间和排序相减,如果差值是定值,可以分成一组,说明用户是连续登陆的 4 min(loadtime) as start, 5 max(loadtime) as end , 6 count(1) as continue_days --连续登陆天数 7 from( 8 select 9 UID, 10 loadtime, 11 row_number()over(partition by UID order by loadtime) sort 12 from 13 user_login 14 ) a 15 group by 16 UID, 17 date_sub(loadtime,sort)

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

     1 --- 用户最大登陆天数
     2 SELECT
     3     UID,
     4     max(continue_days) as maxday
     5 FROM(
     6     select 
     7         UID,
     8         date_sub(loadtime,sort) as date_group,
     9         min(loadtime) as start, 
    10         max(loadtime) as end ,
    11         count(1) as continue_days
    12     from(
    13         select 
    14             UID,
    15             loadtime,
    16             row_number()over(partition by UID order by loadtime) sort
    17         from 
    18             user_login
    19         ) a
    20     group by 
    21         UID,
    22         date_sub(loadtime,sort)
    23 )t1
    24 group by UID

  • 相关阅读:
    alpha冲刺3
    alpha冲刺2
    alpha冲刺1
    软工第七次作业
    软工第八次作业
    软工第六次作业
    软工第五次作业
    软工第四次作业
    Alpha冲刺一 (2/10)
    Alpha冲刺一(1/10)
  • 原文地址:https://www.cnblogs.com/pengpenghuhu/p/14542121.html
Copyright © 2011-2022 走看看