Hive SQL面试题(附答案)

   日期:2024-12-26    作者:gzhdwind 移动:http://3jjewl.riyuangf.com/mobile/quote/54628.html

点击上方 "大数据肌肉猿"关注, 星标一起成长

Hive SQL面试题(附答案)

点击下方链接,进入高质量学习交流群

今日更新| 950个转型案例分享-大数据交流群

本文目录
一、行列转换
二、排名中取他值
三、累计求值
四、窗口大小控制
五、产生连续数值
六、数据扩充与收缩
七、合并与拆分
八、模拟循环操作
九、不使用distinct或group by去重
十、容器--反转内容
十一、多容器--成对提取数据
十二、多容器--转多行
十三、抽象分组--断点排序
十四、业务逻辑的分类与抽象--时效
十五、时间序列--进度及剩余
十六、时间序列--构造日期
十七、时间序列--构造累积日期
十八、时间序列--构造连续日期
十九、时间序列--取多个字段最新的值
二十、时间序列--补全数据
二十一、时间序列--取最新完成状态的前一个状态
二十二、非等值连接--范围匹配
二十三、非等值连接--最近匹配
二十四、N指标--累计去重

描述:表中记录了各年份各部门的平均绩效考核成绩。
表名
表结构

表内容

问题一:多行转多列

问题描述:将上述表内容转为如下输出结果所示

参考答案

问题二:如何将结果转成源表(多列转多行

问题描述:将问题一的结果转成源表,问题一结果表名为。

参考答案

问题三:同一部门会有多个绩效,求多行转多列结果

问题描述:2014年公司组织架构调整,导致部门出现多个绩效,业务及人员不同,无法合并算绩效,源表内容如下

输出结果如下所示

参考答案:

表名
表字段及内容

问题一:按a分组取b字段最小时对应的c字段

输出结果如下所示

参考答案:

问题二:按a分组取b字段排第二时对应的c字段

输出结果如下所示

参考答案

问题三:按a分组取b字段最小和最大时对应的c字段

输出结果如下所示

参考答案:

问题四:按a分组取b字段第二小和第二大时对应的c字段

输出结果如下所示

参考答案

问题五:按a分组取b字段前两小和前两大时对应的c字段

注意:需保持b字段最小、最大排首位

输出结果如下所示

参考答案

表名
表字段及内容

问题一:按a分组按b字段排序,对c累计求和

输出结果如下所示

参考答案

问题二:按a分组按b字段排序,对c取累计平均值

输出结果如下所示

参考答案

问题三:按a分组按b字段排序,对b取累计排名比例

输出结果如下所示

参考答案

问题四:按a分组按b字段排序,对b取累计求和比例

输出结果如下所示

参考答案

表名
表字段及内容

问题一:按a分组按b字段排序,对c取前后各一行的和

输出结果如下所示

参考答案

问题二:按a分组按b字段排序,对c取平均值

问题描述:前一行与当前行的均值

输出结果如下所示

参考答案

输出结果如下所示

参考答案
不借助其他任何外表,实现产生连续数值
此处给出两种解法,其一

其二

那如何产生1至1000000连续数值

参考答案

表名
表字段及内容

问题一:数据扩充

输出结果如下所示

参考答案

问题二:数据扩充,排除偶数

输出结果如下所示

参考答案

问题三:如何处理字符串累计拼接

问题描述:将小于等于a字段的值聚合拼接起来

输出结果如下所示

参考答案

问题四:如果a字段有重复,如何实现字符串累计拼接

输出结果如下所示

参考答案

问题五:数据展开

问题描述:如何将字符串"1-5,16,11-13,9"扩展成"1,2,3,4,5,16,11,12,13,9"?注意顺序不变。

参考答案

表名
表字段及内容

问题一:合并

输出结果如下所示

参考答案:

问题二:拆分

问题描述:将分组合并的结果拆分出来

参考答案

表名
表字段及内容

问题一:如何将字符'1'的位置提取出来

输出结果如下所示:

参考答案

表名
表字段及内容

问题一:不使用distinct或group by去重

输出结果如下所示

参考答案

表名
表字段及内容

问题一:反转逗号分隔的数据:改变顺序,内容不变

输出结果如下所示

参考答案

问题二:反转逗号分隔的数据:改变内容,顺序不变

输出结果如下所示

参考答案

表名
表字段及内容

问题一:成对提取数据,字段一一对应

输出结果如下所示

参考答案:

表名
表字段及内容

问题一:转多行

输出结果如下所示

参考答案:

表名
表字段及内容

问题一:断点排序

输出结果如下所示

参考答案:

日期表
表字段及内容

工作日:周一至周五09:30-18:30

客户申请表
表字段及内容

问题一:计算上表中从申请到通过占用的工作时长

输出结果如下所示

参考答案:

表名
表字段及内容

问题一:求每天的累计周工作日,剩余周工作日

输出结果如下所示

参考答案:
此处给出两种解法,其一

其二

问题一:直接使用SQL实现一张日期维度表,包含以下字段

参考答案

表名
表字段及内容

问题一:每一日期,都扩展成月初至当天

输出结果如下所示

这种累积相关的表,常做桥接表。

参考答案:

表名
表字段及内容

问题一:构造连续日期

问题描述:将表中数据的b字段扩充至范围[2018-01-01, 2018-01-07],并累积对c求和。
b字段的值是较稀疏的。

输出结果如下所示

参考答案:

表名
表字段及内容

问题一:如何一并取出最新日期

输出结果如下所示

参考答案:
此处给出三种解法,其一

其二

其三

表名
表字段及内容

问题一:如何使用最新数据补全表格

输出结果如下所示

参考答案:

表名
表字段及内容

上表中B为完成状态

问题一:取最新完成状态的前一个状态

输出结果如下所示

参考答案:
此处给出两种解法,其一

其二

问题二:如何将完成状态的过程合并

输出结果如下所示:

参考答案

表f是事实表,表d是匹配表,在hive中如何将匹配表中的值关联到事实表中

表d相当于拉链过的变化维,但日期范围可能是不全的。

表f

表d

问题一:范围匹配

输出结果如下所示

**参考答案
此处给出两种解法,其一

其二

表t23_1和表t23_2通过a和b关联时,有相等的取相等的值匹配,不相等时每一个a的值在b中找差值最小的来匹配。

t23_1和t23_2为两个班的成绩单,t23_1班的每个学生成绩在t23_2班中找出成绩最接近的成绩。

表t23_1:a中无重复值

表t23_2:b中无重复值

问题一:单向最近匹配

输出结果如下所示
注意:b的值可能会被丢弃

参考答案

假设表A为事件流水表,客户当天有一条记录则视为当天活跃。

表A

假设客户活跃非常,一天产生的事件记录平均达千条。

问题一:累计去重

输出结果如下所示

参考答案



特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号