【学习记录】大数据课程-学习二十二周总结

news/2024/11/9 1:48:00/

5.3.分组

5.3.1.1.GROUP BY语句
GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。注意使用group by分组之后,select后面的字段只能是分组字段和聚合函数。

案例实操:
(1)计算每个学生的平均分数
select sid ,avg(sscore) from score group by sid;

(2)计算每个学生最高成绩
select sid ,max(sscore) from score group by sid;

5.3.1.2.HAVING语句
1、having与where不同点
(1)where针对表中的列发挥作用,查询数据;having针对查询结果中的列发挥作用,筛选数据。
(2)where后面不能写分组函数,而having后面可以使用分组函数。
(3)having只用于group by分组统计语句。
2、案例实操:
– 求每个学生的平均分数
select sid ,avg(sscore) from score group by sid;
– 求每个学生平均分数大于85的人
select sid ,avg(sscore) avgscore from score group by sid having avgscore > 85;

5.4.JOIN语句
Hive的join操作只支持等值连接
5.4.1.内连接(INNER JOIN)
内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。
select * from teacher t, course c where t.tid = c.tid; #隐式内连接
select * from teacher t inner join course c on t.tid = c.tid; #显式内连接
select * from teacher t join course c on t.tid = c.tid;

5.4.2.左外连接(LEFT OUTER JOIN)
左外连接:JOIN操作符左边表中符合WHERE子句的所有记录将会被返回。
查询老师对应的课程
select * from teacher t left join course c on t.tid = c.tid;

5.4.3.右外连接(RIGHT OUTER JOIN)
右外连接:JOIN操作符右边表中符合WHERE子句的所有记录将会被返回。
select * from teacher t right join course c on t.tid = c.tid;

5.4.4.满外连接(FULL OUTER JOIN)
满外连接:将会返回所有表中符合WHERE语句条件的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用NULL值替代。
SELECT * FROM teacher t FULL JOIN course c ON t.tid = c.tid ;

5.4.5.多表连接
注意:连接 n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。
多表连接查询,查询老师对应的课程,以及对应的分数,对应的学生
select * from teacher t
left join course c
on t.tid = c.tid
left join score s
on s.cid = c.cid
left join student stu
on s.sid = stu.sid;

大多数情况下,Hive会对每对JOIN连接对象启动一个MapReduce任务。本例中会首先启动一个MapReduce job对表teacher和表course进行连接操作,然后会再启动一个MapReduce job将第一个MapReduce job的输出和表score;进行连接操作。


http://www.ppmy.cn/news/73915.html

相关文章

git生成密钥方法

1、密钥生成 打开Git Bash,查看ls ~/.ssh下是否有密钥文件id_rsa*,有的话可先进行备份。 然后用如下命令生成新密钥: ssh-keygen -t rsa -C "your_emailexample.com" 参数含义: -t 指定密钥类型,默认是 …

【嵌入式烧录刷写文件】-2.4-移动Intel Hex中指定地址范围内的数据

案例背景(共5页精讲): 有如下一段Hex文件,将源地址范围0x9100-0x9104中数据,移动至一个“空的,未填充的”目标地址范围0xA000-0xA004。 :2091000058595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F70717…

js - 匿名函数和箭头函数理解

匿名函数和箭头函数 匿名函数1,基本概念2,匿名函数的应用场景 箭头函数1,基本概念箭头函数写法的特殊性 2,箭头函数的特点箭头函数this总是指向父级的this: 扩展 匿名函数 1,基本概念 匿名函数顾名思义指…

【华为OD机试真题2023B卷 JAVA】五子棋迷

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 五子棋迷 知识点数组双指针 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 张兵和王武是五子棋迷,工作之余经常切磋棋艺。这不,这会儿又下起来了。走了一会儿,轮张兵了,对着一条线思考起来了,这条线上的…

CSDN54期周赛 - 穷举编码

本期重复考题如下: 陶陶摘苹果:13期考过,一句代码搞定。 交际圈:23期考过,并查集,连通图,题解在此。C站很喜欢并查集啊。 编码:14、40期考过两次,题解在此。 选择客栈…

Cloud Studio 内核升级之持续优化

前言 Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低&#…

【Java EE】Spring介绍

Spring笔记 1.概述1.1 IOC1.2.context上下文和bean1.3.AOP 2.IoC 控制反转2.1. Spring IoC容器和Bean简介2.2. 容器概述2.2.1. 配置元数据2.2.2. 实例化一个容器2.2.3. 使用容器 2.3. Bean 概览2.3.1. Bean 命名2.3.2. 实例化 Bean2.3.3 bean的生命周期 3.AOPAOP 概念 参考资料…

sysbencn安装使用

解压安装sysbench tar -zxvf sysbench-1.0.20.tar.gz cd sysbench-1.0.20 # -j用于告诉make并行编译代码,可以减少编译时间 make -j make installyum -y install make automake libtool pkgconfig libaio-devel # For MySQL support, replace with mysql-devel on…