hive sql 必会经典题目

本文深入探讨Hive SQL在大数据分析中的高级应用,包括累加求和、分组TOPN、连续N天登录统计、用户留存率计算等实战案例,涵盖常见业务场景的解决方案。

SQL1

hive 累加求和

1)查询每个用户截止到当天,最大访问次数,累计总访问次数
2)查询每个用户截止到当月,累计总访问次数

链接

hive 最近问题

【必会】求用户每次登录时,显示最近3次登录后共访问页面多少次

hive 分组TOPN

【必会】统计不同浏览器使用次数最高的前2名用户

hive 连续N天登陆

—> 【连续登录】求连续3天登录的用户(用3种方法实现)
—> 【连续登录】求每个用户登录的最大天数
—> 【连续登录】求连续3天登录的用户,和该用户每次连续登录的开始时间

链接

hive 起初和结束问题

—> 【必会】求用户第一次登录网站时间 和 最后一次登录网站时间—>推演出:求用户第一次登录网站时访问了哪个浏览器、最后一次登录网站时访问了哪个浏览器

链接

SQL2

公式:

1列炸多行—>发散

(1)explode+split
(2)concat+posexplode+split
(3)select + union all

多行聚1列—> 收敛

(1)group by + case when
(2)concat + collect_set+ concat
(3)named_struct + group by + collect_set
(4)row_number 构造分组

hive 列转行 行转列

【必会】列转行 行转列

变形

链接

链接

hive explode与posexplode的区别

链接

SQL3

hive 互为共同好友

hive 互为共同好友

hive 同时在线问题

1)直播间最大在线人数
2)直播间最大在线人数,以及时间段

hive 同时在线问题

hive 间隔连续登录问题

1)求每个用户最多间隔2天连续登录最大天数
2)求解连续多条记录合并问题

hive 间隔连续登录问题

SQL4

hive 会话划分问题

hive sql 会话划分问题

hive 打折日期交叉问题

hive 打折日期交叉问题

hive 增强聚合函数 with rollup

hive 增强聚合函数 with rollup

SQL5

hive 复购率问题

1)单个产品,每个月的复购率
2)每个产品,近三个月的复购率

hive 复购率问题

hive 用户留存率

1)指定某天:2015-03-02号的次日留存率、七日留存率
2)不指定某天:首次登录后的次日,次七日留存率

链接

SQL6

—> 查询学过编号"01"但是没有学过编号"02"的课程的同学的id

—> 查询不同课程成绩相同的学生的学生id、课程id、课程成绩

—>查询两门及其以上不及格课程的同学的id及其平均成绩

链接

SQL7

—> 查询学生各科成绩及总成绩(总成绩要排名)

—> 查询学生单科成绩,单科总成绩,以及每位同学的总成绩(排名),并在一张表中显示

—> 查询各科成绩最高分、最低分、平均分、及格率、良好率等

—> 查询和"01"号同学学习课程不完全相同的其他同学的id

—> 查询每一门课程都大于60分的同学的id

链接

SQL8

—> left join 特性

表1只有一个字段,为主键,整个表5条记录,表2也是一个字段,非主键字段,有8条记录。表1左关联表2,最多的情况下出来的结果集是多少条记录?

—> 查询回答率最高的问题(简单,但是思路值得借鉴)

—> 2016年的投资-优先级高

—> 好友申请II:谁有最多的好友

—> 学生地理信息报告

链接

SQL9

—> 查找每个公司薪水中位数的员工

—> 牛客直播各科目出勤率

—> 近一个月发布的视频中热度最高的top3视频

链接

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值