栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

hive 连续登陆

大数据系统 更新时间:发布时间: 百科书网 趣学号
1、数据
id	daystr	amount
1	2019-02-08	1241.55
1	2019-02-09	1052.99
1	2019-02-10	85.69
1	2019-02-12	769.85
1	2019-02-13	943.86
1	2019-02-14	538.42
1	2019-02-15	369.76
1	2019-02-16	369.76
1	2019-02-18	795.15
1	2019-02-19	715.65
1	2019-02-21	537.71
2	2019-02-08	1261.55
2	2019-02-09	1052.99
2	2019-02-10	85.69
2	2019-02-12	769.85
2	2019-02-13	943.86
2	2019-02-14	943.18
2	2019-02-15	369.76
2	2019-02-18	795.15
2	2019-02-19	715.65
2	2019-02-21	537.71
2、计算连续登陆

根据用户ID分组按日期排序,将日期和分组序号相减得到连续登陆的开始日期(from_day),如果开始日期相同说明连续登陆

-- 日期减去分区排序的序号,如果新日期相等,则连续登陆
select
    id
    , daystr
    , amount
    , date_sub(daystr, row_number() over(partition by id order by daystr)) from_day 
from
table_a;


OK
id	daystr	   amount	    from_day
1	2019-02-08	1241.55	2019-02-07
1	2019-02-09	1052.99	2019-02-07
1	2019-02-10	85.69	2019-02-07
1	2019-02-12	769.85	2019-02-08
1	2019-02-13	943.86	2019-02-08
1	2019-02-14	538.42	2019-02-08
1	2019-02-15	369.76	2019-02-08
1	2019-02-16	369.76	2019-02-08
1	2019-02-18	795.15	2019-02-09
1	2019-02-19	715.65	2019-02-09
1	2019-02-21	537.71	2019-02-10
2	2019-02-08	1261.55	2019-02-07
2	2019-02-09	1052.99	2019-02-07
2	2019-02-10	85.69	2019-02-07
2	2019-02-12	769.85	2019-02-08
2	2019-02-13	943.86	2019-02-08
2	2019-02-14	943.18	2019-02-08
2	2019-02-15	369.76	2019-02-08
2	2019-02-18	795.15	2019-02-10
2	2019-02-19	715.65	2019-02-10
2	2019-02-21	537.71	2019-02-11



--观察用户连续登陆的情况

select 
    id
    ,from_day
    ,min(daystr) start_date, -- 连续登陆的开始时间
    ,max(daystr) end_date, -- 连续登陆的结束时间
    ,count(1) continuous_day, -- 连续登陆的天数
from (
    select
        id
        , daystr
        , amount
        , date_sub(daystr, row_number() over(partition by id order by daystr))         from_day 
    from
    table_a;
) group by id,from_day

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/601113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号