【大数据之Hive】十一、Hive-HQL查询之基本查询

基础语法

select [all | distinct] select_expr,select_expr, ...
    from table)name          --从什么表查
    [where where_condition]  --过滤
    [group by col_list]      --分组查询
    [having col_list]        --分组后过滤
    [order by col_list]      --排序
    [cluster by col_list | [distribute by col_list] [sort by col_list] ]
    [limit number];          --限制输出的行数

基本查询(select … from …)

原始数据:
  在/opt/module/hive/datas/下创建dept.txt文件和emp.txt文件

# dept.txt下字段为:部门编号 部门名称 部门位置id
vim dept.txt
10    行政部    1700
20    财务部    1800
30    教学部    1900
40    销售部    1700

#emp.txt下字段为:员工编号 姓名 岗位 薪资 部门
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

创建表并导入数据:

-- 创建部门表:
create table if not exists dept(
    deptnum int,    --部门编号
    dname string,    --部门名称
    locid int    --部门位置id
)
row format delimited fields terminated by '\t';

-- 创建员工表:
create table if not exists emp(
    empnum int,    --员工编号
    ename string,    --员工姓名
    job string,    --员工岗位
    sal double,    --员工薪资
    deptnum int    --部门编号
)
row format delimited fields terminated by '\t';

--导入数据:
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;

1 全表和特定列查询

注意:
(1)SQL 语言大小写不敏感。
(2)SQL 可以写在一行或者多行。
(3)关键字不能被缩写也不能分行。
(4)各子句一般要分行写。
(5)使用缩进提高语句的可读性。

-- 全表查询:
selectr * from emp;

-- 选择特定列查询:
select empnum,ename from emp;

2 列别名

  重命名一个列,便于计算。
语法:

select old_col_name as new_col_name from tablename;
select old_col_name new_col_name from tablename;

如:

select ename as name,deptnum dn from emp;

3 limit语句

  查询返回多行数据,用limit限制返回的行数。

select * from emp limit 5;

--从第2行开始返回3行:
select * from emp limit 1,3;

4 where语句

  用where过滤不满足条件的行,只针对一行一行的数据,在from句后,且where句子不能用字段别名。

select * from emp where sal > 1000;

5 关系运算函数

  关系运算操作符主要用于where和having语句中。
在这里插入图片描述
对于模糊匹配like:用show查tables用通配符*,用select查表数据用通配符%。

6 逻辑运算函数

语法:
在这里插入图片描述

--查找薪水大于1000且部门是30的员工信息
select * from emp where sal > 1000 and deptnum = 30;

--查找薪水大于1000或部门是30的员工信息
select * from emp where sal > 1000 or deptnum = 30;

--查询除了部门2030以外的员工信息:
select * from emp where deptnum not in (30,20);

7 聚合函数

在这里插入图片描述

--求总行数(count):
select count(*) cnt from emp;

--求工资最大值(max):
select max(sal) max_sal from emp;

--求工资最小值:
select min(sal) min_sal from emp;

--求工资总和:
select sum(sal) sum_sal from emp;

--求工资平均值:
select avg(sal) avg_sal from emp;

在这里插入图片描述
在这里插入图片描述
sql语句翻译成MapReduce的执行计划,在Map端读入数据,在每个Map端上对读入的数据进行聚合,就减少了shuffle的数据量,然后将每个Map聚合之后的结果汇总到一个Reduce中,在Reduce上进行统计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/28349.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 152.乘积最大子数组

题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 子数组 是数组的连续子序列。 来源:力扣&a…

C++入门攻略

C补足C语言部分缺陷 1.命名空间:1.1 命名空间namespace关键字1.命名空间中可以定义变量、函数、类型2.命名空间可以嵌套3.相同命名空间共存 1.2 命名空间的使用方式:1.名称加用域作用限定符的方式访问(同上)2.使用using引入某个空…

Java并发之 Lock 锁

一、Lock接口 1 Lock简介&地位&作用 锁是一种工具,用于控制对共享资源的访问Lock和synchronized是最常见的两个锁,他们都能够达到线程安全的目录,但是使用和功能上又有较大的不同Lock接口最常见的实现类就是ReentrantLock通常情况下…

C:\Users\BC>conda -V ‘conda‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

C:\Users\BC>conda -V ‘conda’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 注意!:Anaconda安装路径和Scripts路径,两个都添加进去Path 解释:将 Anaconda 安装路径和 Scripts 路径都添加到系统的 PA…

文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题

四、一次聚会需要邀请多少人,才能让其中 3 人的生日很可能相同? 文心一言: 为了解决这个问题,我们需要先计算出所有可能的生日组合数,然后计算出其中生日相同的组合数。 已知需要邀请的人数为:23人 根据组合数公式…

k8s如何使用ceph rbd块存储(静态供给、存储类动态供给)

目录 前言安装ceph集群ceph集群创建rbd块存储rbd块存储不支持ReadWriteManyk8s配置rbd块存储(静态供给)创建secret创建pv创建pvck8s节点安装客户端依赖包部署pod查看pod验证是否持久化 k8s配置rbd块存储(动态供给)查看官网ceph集群…

【ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号】

文章目录 1.1 Locked accesses 1.1 Locked accesses 当主机使用 AxLOCK 信号来指示事务是锁定的事务时,互连(Interconnect)必须确保只有该主机可以访问目标从属区域,直到来自同一主机的未锁定事务完成。互连中的仲裁器(arbiter)必须执行此限制。 在主机…

湖南大学CS-2017(另一张)期末考试解析

【特别注意】 答案来源于wolf 是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 有必要一做。 【试卷与答案】 由于这张试卷没有电子版,我就直接拍我自己的作答了

Monocle2拟时基因富集分析

****Monocle2全部往期精彩系列:1、群成员专享:Monocle2更新(就是重新梳理一下)2、一键跑完monocle2?3、ggplot2个性可视化monocle2结果4、ggplot修饰monocle2拟时热图:一众问题全部解决5、Monocle2终极修改…

Day975.如何使用JWT结构化令牌 -OAuth 2.0

如何使用JWT结构化令牌 Hi,我是阿昌,今天学习记录的是关于如何使用JWT结构化令牌的内容。 OAuth 2.0 规范并没有约束访问令牌内容的生成规则,只要符合唯一性、不连续性、不可猜性就够了。这就意味着,可以灵活选择令牌的形式&…

天然气井远程监控解决方案

天然气井远程监控解决方案 一、项目背景 随着天然气开发规模日益增长,天然气井的数量也在不断增加。且位置分散环境恶劣。传统的人工巡检方式越来越不能满足天然气井的生产需求和安全保障。天然气井井由储罐和集气站组成。 集气站通过计量站将天然气输入储罐或由集…

深入学习 Mybatis 的四大组件源码

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

社会心理学(1) 社会心理学的定义

今天开始 我们一起学习一门课程 社会心理学 社会心理学 他是 应用心理学 或者 心理学专业的一个必修课 吴江霖教授说过 心理学应该分为两大分支 生理心理学 和 社会心理学 如果认同他的观点 那么 社会心理学可谓是相当重要了 社会心理学的定义之广可以说 有多少社会心理学教…

【MySQL数据库一】MySQL数据库初体验

MySQL数据库初体验 1.数据库基本概念1.1 数据Data1.2 表1.3 数据库1.4 数据库管理系统1.5 数据库系统 2.数据库的发展3.主流的数据库介绍3.1 SQL Server(微软公司产品)3.2 Oracle (甲骨文公司产品)3.3 DB2(IBM公司产品…

【Spark基础编程】 第8章 Spark MLlib

系列文章目录 文章目录 系列文章目录前言【 第8章 Spark MLlib 】8.1 Spark MLlib简介8.1.1 什么是机器学习8.1.2 基于大数据的机器学习8.1.3 Spark 机器学习库MLLib 8.2 机器学习工作流8.2.1 机器学习流水线概念8.2.2 构建一个机器学习流水线 8.3 特征抽取、转化和选择8.4 分类…

【Linux】进程间的通信之共享内存

进程间的通信之共享内存 一、system V 内存共享原理二、共享内存的使用1、ftok函数2、shmget函数3、shmat函数4、shmdt函数5、shmctl函数6、代码使用 三、一些细节的补充 一、system V 内存共享原理 利用内存共享进行进程间的通信的原理其实分为以下几个步骤: 在物…

Mysql数据库初体验

Mysql数据库初体验 一、数据库的基本概念1.数据(Data)2.表3.数据库4.数据库管理系统(DBMS)5.数据库系统 二、数据库系统发展史1.第一代数据库2.第二代数据库3.第三代数据库 三、当今主流数据库介绍四、数据库分类1.关系数据库2.关系型 SQL 数…

mybatis-plus分页查询(springboot中实现单表和多表查询)

一、mybatis-plus单表查询 使用mybatis-plus实现单表分页查询 非常方便,主要操作步骤如下: 配置分页查询拦截器进行分页查询 1.首先,打开mybatis-plus官网的插件(插件主体) 或者点击mybatis-plus插件 我是配置在s…

基于Java汽车在线租赁管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

C语言-关键字

关键字就是c语言已经定义好的名字,直接可以拿过来使用,不需要再次定义 1 数据类型相关的关键字 用于定义变量或者类型 定义变量的语法结构: 类型 变量名; 拓展:变量名属于标识符,标识符(变量…