hive知识点散记

发布时间 2023-10-03 12:04:35作者: 椰子灰

在不切换数据库的前提下查询某一数据库下的所有表    show tables in 数据库名;

查询显示某一张表的元数据信息    desc formatted 表名;

查询当前数据库名称    select current_databases();

对查询结果进行去重    select distinct cname from stu;  【不写distinct(或者写all)默认为all】【当distinct后又多个字段时候为整体去重】

 

一些聚合函数——

AVG(column)    返回某列的平均值

COUNT(column)   返回某列的行数(不包括NULL值)

COUNT(*)     返回被选行数

MAX(column)    返回某列的最高值

MIN(column)     返回某列的最低值

SUM(column)   返回某列的(数值的)总和

 

可以用 as  来更改列名

 

使用group by 的时候注意 筛选条件中的值 要么是group by 分组的字段,要么是被聚合函数应用的字段

——为了避免歧义

 

使用聚合函数的时候无法使用where,需要用having代替

——where比聚合语句先执行,聚合语句比having先执行

 

order by 可用于 根据指定列对结果进行排序    默认使用升序(ASC)  降序为DESC

 

limit可用于对输出结果的数量进行限制   

输出前3行        select cname from stu limit 3

从第2行开始输出3行     select cname from stu limit 2,3    注意此时第一行定义为0【参考数组】

 

查询过程中的执行顺序——

from > where > group(含聚合) > having > order > select

 

关于join——

join 即为 inner join,同sql

  select c.cname s.sname

  from course c join stu s

  on c.sid = s.sid;

隐式表示法——  

  select c.cname s.sname

  from course c , stu s

  where c.sid = s.sid;

左连接  left join  左外连接

连接时,左边为全部数据,右边有则显示数据,无则显示null