我是靠谱客的博主 现代月饼,最近开发中收集的这篇文章主要介绍用户连续登录天数hive,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

create table users(
    uid int,
    dt string);

select uid,pdt,count(uid) as cnt_day
from(select t1.uid,date_sub(t1.dt,t1.rm) as pdt
from
(select uid,dt,
row_number() over(distribute by uid sort by dt) rm
from (select uid,dt from users group by uid,dt)m) t1)t2
group by uid,pdt;

对打点表中的用户计算连续登录天数

date_sub(t1.dt,t1.rm) 在t1.dt的基础上减去 t1.rm的天数,rm是按照差值为1递增的,所以如果得到的pdt值相同的同一个uid值,说明为用户连续登录的天数,但是这里的pdt值仅作为这个统计,没有其他意义

连续登录天数大于7天的用户

select uid,pdt
from(select t1.uid,date_sub(t1.dt,t1.rm) as pdt
from
(select uid,dt,
row_number() over(distribute by uid sort by dt) rm
from (select uid,dt from users group by uid,dt)m) t1)t2
group by uid,pdt having count(uid)>6;

最后

以上就是现代月饼为你收集整理的用户连续登录天数hive的全部内容,希望文章能够帮你解决用户连续登录天数hive所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部