优秀的编程知识分享平台

网站首页 > 技术文章 正文

怎么找出连续5天登录的用户,大数据面试题sql

nanyue 2024-10-20 07:43:41 技术文章 11 ℃

name

logindate

Joeee

20180101

Heye

20180103

Sme

20180105

Mae

20180102

Jete

20180107

Raye

20180120

这题一看很懵逼!啊连续登录?怎么写,


select name, max(days)

from

(

select name, groupday, count(*) as days

from

(

select

name, logindate - row_number() over (partition by name order by logindate) as groupday

from mytable

)

group by name, groupday

)

group by name

having max(days) >= 3

参考:mysql连续登录5天以上用户,【SQL】查询连续登陆7天以上的用户_郭鑫垚的博客-CSDN博客

select id,count(*)  ----第4步
from 
(select 
    *,date(日期)-cum as 结果  ----第3步
    from 

    (select 
        *,row_number() over(PARTITION by id order by 日期) as cum   ----第2步
    from 
        (select 
            DISTINCT date(date) as 日期,id   ----第1步
        from orde) a
    ) b

)c 
GROUP BY id,结果 
having count(*)>=7; ----第5步



最近发表
标签列表