hive查询语法(1)

 order by:会对输入做全局排序,因此只有一个reducer,会导致输入规模较大时,需要较长的计算时间

sort by:不是全局排序,其数据在进入reducer之前完成排序,只保证每个reducer的输出有序而不保证全局有序

distribute by:根据指定的字段将数据分到不同的reducer,相当于一个分区,其算法为hash散列

cluster by:除了具有distribute by的功能外,还会对该字段进行排序

1.全表查询

select * from 表名字

2.选择特定列

select 列字段 from 表名字

3.列别名

select 列字段 as 列别名 from 表名字

 4.常用函数

求总行数:select count(1)from 表名字

求最大值:select max(列字段) from 表名字

求最小值:select min(列字段) from 表名字

求总和:select sum(列字段) from 表名字

求平均值:select avg(列字段) from 表名字

5.limit语句

limit语句回限制返回的查询结果的行数

select * from 表名字 limit 3  返回前三条结果

6.where语句

where语句会将不满足条件的语句过滤掉

select 列字段 from 表名字 where 条件 

操作符:A<=>B 如果AB都为NULL则返回true 如果只有一个为NULL则返回NULL,若都不为NULL,判断是否相等

               A<>B A!=B 判断是否A不等于B

              in()in后面的数据是一个列表,数据和列表中的一个相同就可以

              select * from score where s_score in(80,90)  查询成绩是80或90的数据

7.like和rlike

可以使用like运算选取类似的值,rlike功能更加强大,后面可以接一个正则表达式。这两个关键字通常用于模糊查询

%:可以代表任意个字符

_:可以代表一个字符

select * from score where s_score like ‘8%’    查询成绩是8开头的数据,成绩为8,80,81,82...的数据都会被查询出来

select * from score where s_id rlike ‘[1]' 相当于 like’%1%‘ 查找s_id中包含1的数据

8.逻辑运算符

and:表示并

or:表示或

not:表示否

原文地址:https://www.cnblogs.com/wangzhaojun1670/p/13561181.html