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个连接条件。