1.查询语句:

hive hql页面查询组件 hive sql查询语句_sql

2.基本查询(select...from):(1)全表查询:

hive(default) > select * from emp;
hive(default) > select empno,ename,job,mgr,hiredate,sal,
comm,deptno from emp;

(2)选择特定列查询:

hive(default) > select empno,enmae from emp;

注:①SQL语言大小写不敏感

   ②SQL可以写在一行或者多行

   ③关键字不能被缩写也不能分行

   ④各子句一般要分行写

3.常用函数:(1)求总行数(count):

hive(default) > select count(*) cnt from emp;

(2)求工资的最大值(max):

hive(default) > select max(sal) max_sal from emp;

(3)求工资的最小值(min):

hive(default) > select min(sal) min_sal from emp;

(4)求工资的总和(sum):

hive(default) > select sum(sal) sum_sal from emp;

(5)求工资的平均值(avg):

hive(default) > select avg(sal) avg_sal from emp;

4.Limit语句:典型的查询会返回多行数据。Limit子句用于限制返回的行数

eg.  hive(default) > select from emp limit 5;

5.Where语句:(1)使用where子句,将不满足的行过滤掉

(2)where子句紧随from子句

eg.查询出薪水大于1000的所有员工

hive(default) > select * from emp where sal>1000;

注:where子句中不能使用字段别名

6.比较运算符(between/in/is null):下面表中描述了谓词操作符,这些操作符同样可以用于join...on和having语句中

操作符

支持的数据类型

描述

A=B

基本数据类型

如果A等于B则返回true,反之返回false

A<=>B

基本数据类型

如果A和B都为NULL则返回true,如果一边为NULL,返回false

A<>B,A!=B

基本数据类型

A或B为NILL则返回NULL;如果A不等于B则返回true,反之返回false

A<B

基本数据类型

A或B为NULL,则返回NULL;如果A小于B,则返回true,反之返回false

A<=B

基本数据类型

A或B为NULL,则返回NULL;如果A小于等于B,则返回true,反之返回false

A>B

基本数据类型

A或B为NULL,则返回NULL;如果A大于B,则返回true,反之返回false

A>=B

基本数据类型

A或B为NULL,则返回NULL;如果A大于等于B,则返回true,反之返回false

7.Like和RLike:(1)使用like运算选择类似的值

(2)选择条件可以包含字符或者数字:①“%”代表零个或多个字符

②“_”代表一个字符

(3)rlike子句:rlike子句是hive中这个功能的一个扩展,可以通过Java的正则表达式来指定匹配条件

eg.①查找名字以A开头的员工信息:

hive(default) > select * from emp where ename LIKE ‘A%’;

②查找名字中第二个字母为A的员工信息:

hive(default) > select * from emp where ename LIKE ‘_A%’;

③查找名字中带有A的员工信息:

hive(default) > select * from emp where ename RLIKE ‘[A]’;或:hive(default) > select * from emp where ename LIKE ‘%A%’;

8.分组:(1)group by语句:通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作

eg.①计算emp表每个部门的平均工资

hive(default) > select t.deptno,avg(t.sal) avg_sal from emp t group by t.deptno;

②计算emp每个部门中每个岗位的最高薪水

hive(default) > select t.deptno,t.job,max(t.sal) max_sal from emp t group by
t.deptno,t.job;