栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive-day05-DML语句-数据查询(1)

Hive-day05-DML语句-数据查询(1)

1:全表查询和指定列查询

hive (default)> select * from emp;

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

不区分大小写, sql可以写一行或者多行,关键字不能缩写也不能分行,各子句一般要分行写

2:列别名

hive (default)> select ename AS name, deptno dn from emp;

可以加as,也可以不加,上面ename的别名是name,deptno的别名是dn

3:运算符

hive (default)> select sal +1 from emp;

查询除所有员工的薪水后加1显示

4:常用函数

1:总行数

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

2:工资的最大值

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

3:工资的最小值

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

4:工资的总和

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

5:工资的平均值

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

5:limit语句

hive (default)> select * from emp limit 5;

查询会返回多行数据,limit子句用于限制返回的行数

6:where语句

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

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

7:比较运算符

查询薪水等于5000的所有员工

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

查询工资在500-1000的员工信息

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

查询comm为空的所有员工信息

hive (default)> select * from emp where comm is null;

查询工资是1500或5000的员工信息

hive (default)> select * from emp where sal IN (1500, 5000);

8:like和rlike

%代表零个或者多个字符(任意个字符)

_代表一个字符

查询名字以A开头的员工信息

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

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

hive (de fault)> select * from emp where ename LIKE '_ A%';

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

hive (default)> select * from emp where ename RLIKE '[A]';

9:逻辑运算符(and/or/not)

查询薪水大于1000,部门是30

hive (default)> select * from emp where sal>1000 and deptno=30;

查询薪水大于1000,或者部门是30

hive (default)> select * from emp where sal>1000 or deptno=30;

查询除了20部门和30部门以外的员工信息

hive (default)> select * from emp where deptno not IN(30, 20);

10:分组

计算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;

求每个部门的平均薪资大于2000的部门

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

求每个部门的平均工资

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号