Hive QL解题流程详解一

本文详细解析了两道Hive SQL题目,第一题涉及根据学生成绩找出所有科目均高于平均分的学生,步骤包括建表、计算平均分、设置标志、分组统计与查询。第二题则要求统计用户每月累计访问次数,通过创建表、格式转换、计算单月访问量及按月累计来实现。这两题展示了Hive在数据仓库分析中的应用。
摘要由CSDN通过智能技术生成

第1题

表结构:uid,subject_id,score

求:找出所有科目成绩都大于某一学科平均成绩的学生

分析:
    要求每个学生的平均成绩
    每个学生的每科成绩和平均成绩进行比较

数据集如下

1001   01 90
1001   02 90
1001   03 90
1002   01 85
1002   02 85
1002   03 70
1003   01 70
1003   02 70
1003   03 85

1) 建表语句

create table if not exists score(
uid string,
subject_id string,
`score` int)
row format delimited fields terminated by '\t';

2) 求出每个学科的平均成绩

select
`uid`,
`score`,
avg(score) over(partition by subject_id) avg_score
from
score;t1

3) 根据是否大于平均成绩记录flag,大于则记为0否则记为1

select
`uid`
if(score>avg_score,0,1) flag
from
t1;t2

4) 根据学生id进行分组统计flag的和,和为0就是所有学科都大于平均成绩

select
uid
fro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值