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

概述

hive连续n天登陆

日期 用户 年龄

dates,users,age
11,test_1,23
11,test_2,19
11,test_3,39
11,test_1,23
11,test_3,39
11,test_1,23
12,test_2,19
13,test_1,23

两个需求:

求出连续登陆的用户的总数和平均年龄
求出所有用户的总数和平均年龄

create table da(
dates int,
users string,
age int
)row format delimited fields terminated by ‘,’;
load data local inpath ‘/hive/da.txt’ overwrite into table da;

求出连续登陆的用户的总数和平均年龄

with shi as (
select
users,
count(*)`连续`,
min(dates)`首登`,
max(dates)`末登`
from
(
select
users,
dates,
(dates-rn)chazhi
from
(
select
users,
dates,
row_number()over(partition by users order by dates)rn
from
da
group by users,dates
)t2)t3
group by users,chazhi
having count(*)>1
), 

zi as(
select users,age from da
)

select
users,
avg(age)over(partition by users order by age)`连续登陆用户的平均年龄`,
count(*)`连续登陆人数的总和`
from
(
select
a.age,b.users
from
zi a
join 
shi b 
on a.users=b.users
)t
group by users,age
;

求出所有用户的总数和平均年龄

select
avg(age)`平均年龄`
from
da;


select
count(*)`所有人数`
from
(
select
distinct users
from
da
)t
;

最后

以上就是文静山水为你收集整理的hive连续n天登陆的全部内容,希望文章能够帮你解决hive连续n天登陆所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部