Hive中的查询语句和分组操作

本文介绍了Hive SQL的基本查询语法,包括全表查询、选择特定列、使用COUNT、MAX、MIN、SUM和AVG等聚合函数,LIMIT语句以及WHERE子句进行条件过滤。同时,讲解了比较运算符的使用,并展示了LIKE和RLIKE在模糊查询中的应用,以及GROUP BY语句在数据分组和聚合操作中的作用。
摘要由CSDN通过智能技术生成

1.查询语句:

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;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZSup{A}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值