首页 > 数据库 >【大数据入门 | Hive】hiveSQL常用语句

【大数据入门 | Hive】hiveSQL常用语句

时间:2024-09-28 18:50:38浏览次数:12  
标签:语句 default hiveSQL hive -- Hive where select emp

1. 数据准备

①在/opt/module/hive/datas/路径上创建dept.txt文件,并赋值如下内容:

部门编号 部门名称 部门位置id

[atguigu@hadoop102 datas]$ vim dept.txt

10	行政部	1700
20	财务部	1800
30	教学部	1900
40	销售部	1700

②在/opt/module/hive/datas/路径上创建emp.txt文件,并赋值如下内容:

员工编号 姓名 岗位    薪资  部门

[atguigu@hadoop102 datas]$ vim emp.txt

7369	张三	研发	800.00	30
7499	李四	财务	1600.00	20
7521	王五	行政	1250.00	10
7566	赵六	销售	2975.00	40
7654	侯七	研发	1250.00	30
7698	马八	研发	2850.00	30
7782	金九	\N	2450.0	30
7788	银十	行政	3000.00	10
7839	小芳	销售	5000.00	40
7844	小明	销售	1500.00	40
7876	小李	行政	1100.00	10
7900	小元	讲师	950.00	30
7902	小海	行政	3000.00	10
7934	小红明	讲师	1300.00	30

(1)创建部门表

hive (default)>
create table if not exists dept(
    deptno int,    -- 部门编号
    dname string,  -- 部门名称
    loc int        -- 部门位置
)
row format delimited fields terminated by '\t';

(2)创建员工表

hive (default)>
create table if not exists emp(
    empno int,      -- 员工编号
    ename string,   -- 员工姓名
    job string,     -- 员工岗位(大数据工程师、前端工程师、java工程师)
    sal double,     -- 员工薪资
    deptno int      -- 部门编号
)
row format delimited fields terminated by '\t';

(3)导入数据

hive (default)>
load data local inpath '/opt/module/hive/datas/dept.txt' into table dept;
load data local inpath '/opt/module/hive/datas/emp.txt' into table emp;

2. 全表和特定列查询

1全表查询

hive (default)> select * from emp;

2)选择特定列查询

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

注意:

(1)SQL 语言大小写不敏感。 

(2)SQL 可以写在一行或者多行。

(3)关键字不能被缩写也不能分行。

(4)各子句一般要分行写。

(5)使用缩进提高语句的可读性。

3. 列别名(AS 关键字)

1)重命名一个列

2)便于计算

3)紧跟列名,也可以在列名和别名之间加入关键字‘AS’

4)案例实操

查询名称和部门。

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

4. limit语句

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

hive (default)> select * from emp limit 5; 
hive (default)> select * from emp limit 2,3; -- 表示从第2行开始,向下抓取3行

5. where语句

1)使用where子句将不满足条件的行过滤掉

2)where子句紧随from子句

3)案例实操

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

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

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

6. 关系运算函数

1)基本语法

如下操作符主要用于wherehaving语句中。

7. 逻辑运算函数

1)基本语法(and/or/not)

8. 聚合函数

1)语法

count(*),表示统计所有行数,包含null值;

count(某列),表示该列一共有多少行,不包含null值;

max(),求最大值,不包含null,除非所有值都是null;

min(),求最小值,不包含null,除非所有值都是null;

sum(),求和,不包含null。

avg(),求平均值,不包含null。

(1)求总行数(count)

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

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

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

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

9. 分组

9.1 group by

Group By语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。

(1)计算emp表每个部门的平均工资。

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

9.2 having语句

1havingwhere不同点

(1)where后面不能写分组聚合函数,而having后面可以使用分组聚合函数。

(2)having只用于group by分组统计语句。

2)案例实操

(1)求每个部门的平均薪水大于2000的部门

①求每个部门的平均工资。

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

标签:语句,default,hiveSQL,hive,--,Hive,where,select,emp
From: https://blog.csdn.net/2301_80912559/article/details/142502072

相关文章

  • JavaScript 条件循环语句
    ‌条件循环语句‌是编程中的一种控制结构,它允许程序根据特定条件重复执行一段代码,直到满足某个条件为止。这种结构通常包括条件语句和循环语句,它们共同作用,使得程序能够根据预设的条件来决定是否继续执行循环体中的代码。for循环:适用场景:当知道循环次数时(循环次数已知)。特......
  • 运算符、分支语句
    位操作符:可以直接操作二进制数位的内容;~是一个单目位操作符,它可以根据一个数字计算另外一个数字,这两个数字所有二进制数位的内容都不同(按位取反),使用的时候这个符号应该写在数字前面双目位操作符:包括按位与(&),按位或(|)以及按位异或(^),他们都可以把两个数字对应二进制数位的内容做计算......
  • Python基础04_Python字符串(下)&Python输入和输出&条件语句&循环语句&pass语句
    目录Python字符串(下)6、字符串的常用函数APIPython输入和输出1、输出 2、输入条件语句1.if2、if-else3、if-elif-else循环语句1、range函数2、for-in循环3、while循环4、循环控制break:用于 跳出 当前循环: continue:用于跳过当前迭代,继续下一次迭代:5、p......
  • 【YashanDB知识库】由于hist_head$中analyze time小于tab$中analyze time导致的sql语
    本文内容来自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7459465.html?templateId=1718516问题现象某局点yashandbcpu使用率100%,经线上分析是由于几个sql执行慢,其中一个sql为简单的单行等值绑定变量过滤+排序。经分析执行计划,相对以前有所变化,走了另外一个索引(......