hive查询语法(2)

9.Group by语句

group by语句通常会和聚合函数一起使用,按照一个或者多个列队进行分组,然后对每个分组进行聚合操作

注:和sql语句不同的是,select后面的字段必须和group by后面的字段保持一致。

 

错误写法:

此查询语句的结果:

 

 10.having语句

having语句和where语句不同:

where语句针对表中的列发挥作用,having语句针对查询结果中的列发挥作用,进行筛选

where与疾病后面不能写分组语句,having后面可以

例:求学生中平均成绩大于85的人

实现思路:先根据学号对学生进行分组,求每个分组的平均成绩,再使用having语句对结果进行筛选,筛选出平均成绩大于85的人。

 

11.join语句

join语句主要用于实现多表联合查询,hive支持通常SQL语句中的join语句,但只支持等值查询,即联合查询的条件值必须相等。

 

内连接:只有进行连接的两个表中,都存在与连接条件相匹配的数据才会被保留下来。

select * from teacher t inner join course c on t.t_id=c.t_id

只有教师表中的教师id与课程表中教师id相等的数据才会被保留下来。

左外连接:先把左表的数据输出,如果右表有匹配的数据则输出,如果没有则补一个NULL

 

 

右外连接:与左外连接相反

语法为:将left换为right

注:左表为join左边的表,右表为join右边的表

多表连接:连接n个表,至少需要n-1个连接条件。

 

posted @ 2020-08-27 10:08  Protect_Winter  阅读(115)  评论(0编辑  收藏  举报