sql spark 连续登录几次数据

 1.对每个学生每一天进行排序,知道这个学生历史上过几次

2.用上课的日期减去第几次登录的,可知如果连续那么首次应该什么时间登录。那么连续的登录对应的首次登录时间应该相等。

3.限制连续登录的次数。


select---将连续登录时间和学生分组  就可知道改学生连续登录多少次
les_stu_id,
date_diff,
count(les_date) as count_num,
max(les_date) as max_les_date,
min(les_date) as min_les_date
from(
    select
    les_stu_id
    ,les_date
    ,date_sub(les_date, rn) as date_diff  ---当前日期减去已有的天数  如果此人得到数据是相同的  则连续登录
    from
    (
        select
        distinct 
        date(les_start_time) as les_date,
        les_stu_id,
        row_number()over(partition by les_stu_id order by date(les_start_time)) as rn
        from lesson
    )t 
)T 
group by 
les_stu_id,
date_diff
having count(les_date)>=3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值