公司网站后台管理教程/广州谷歌seo公司

公司网站后台管理教程,广州谷歌seo公司,18款禁用看奶网站视频,免费html5播放器一、目标 掌握hive中select查询语句中的基本语法掌握hive中select查询语句的分组掌握hive中select查询语句中的join掌握hive中select查询语句中的排序 二、要点 1. 基本查询 注意 SQL 语言大小写不敏感SQL 可以写在一行或者多行关键字不能被缩写也不能分行各子句一般要分行…

一、目标

  1. 掌握hive中select查询语句中的基本语法
  2. 掌握hive中select查询语句的分组
  3. 掌握hive中select查询语句中的join
  4. 掌握hive中select查询语句中的排序

二、要点

1. 基本查询

  • 注意
    • SQL 语言大小写不敏感
    • SQL 可以写在一行或者多行
    • 关键字不能被缩写也不能分行
    • 各子句一般要分行写
    • 使用缩进提高语句的可读性
1.1 全表和特定列查询
  • 全表查询
select * from student;
  • 选择特定列查询
select empno, ename from emp;
1.2 列起别名
  • 重命名一个列

    • 紧跟列名,也可以在列名和别名之间加入关键字 ‘as’
  • 案例实操

     select ename AS name, deptno dn from emp;
    
1.3 常用函数
  • 1.求总行数(count)
 select count(*) cnt from emp;
  • 2、求工资的最大值(max)
select max(sal) max_sal from emp;
  • 3、求工资的最小值(min)
select min(sal) min_sal from emp;
  • 4、求工资的总和(sum)
select sum(sal) sum_sal from emp; 
  • 5、求工资的平均值(avg)
select avg(sal) avg_sal from emp;
1.4 limit 语句
  • 典型的查询会返回多行数据。limit子句用于限制返回的行数。
 select * from emp limit 5;
1.5 where 语句
  • 1、使用 where 子句,将不满足条件的行过滤掉
  • 2、where 子句紧随from子句
  • 3、案例实操
 select * from emp where sal >1000;
1.6 算术运算符
运算符描述
A+BA和B 相加
A-BA减去B
A*BA和B 相乘
A/BA除以B
A%BA对B取余
A&BA和B按位取与
A|BA和B按位取或
A^BA和B按位取异或
~AA按位取反
1.7 比较运算符
操作符支持的数据类型描述
A=B基本数据类型如果A等于B则返回true,反之返回false
A<=>B基本数据类型如果A和B都为NULL,则返回true,其他的和等号(=)操作符的结果一致,如果任一为NULL则结果为NULL
A<>B, 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
A>=B基本数据类型A或者B为NULL,则返回NULL;如果A大于等于B,则返回true,反之返回false
A [NOT] BETWEEN B AND C基本数据类型如果A,B或者C任一为NULL,则结果为NULL。如果A的值大于等于B而且小于或等于C,则结果为true,反之为false。如果使用NOT关键字则可达到相反的效果。
A IS NULL所有数据类型如果A等于NULL,则返回true,反之返回false
A IS NOT NULL所有数据类型如果A不等于NULL,则返回true,反之返回false
IN(数值1, 数值2)所有数据类型使用 IN运算显示列表中的值
A [NOT] LIKE BSTRING 类型B是一个SQL下的简单正则表达式,如果A与其匹配的话,则返回true;反之返回false。B的表达式说明如下:‘x%’表示A必须以字母‘x’开头,‘%x’表示A必须以字母’x’结尾,而‘%x%’表示A包含有字母’x’,可以位于开头,结尾或者字符串中间。如果使用NOT关键字则可达到相反的效果。like不是正则,而是通配符
A RLIKE B, A REGEXP BSTRING 类型B是一个正则表达式,如果A与其匹配,则返回true;反之返回false。匹配使用的是JDK中的正则表达式接口实现的,因为正则也依据其中的规则。例如,正则表达式必须和整个字符串A相匹配,而不是只需与其字符串匹配。
1.8 逻辑运算符
操作符操作描述
A AND B逻辑并如果A和B都是true则为true,否则false
A OR B逻辑或如果A或B或两者都是true则为true,否则false
NOT A逻辑否如果A为false则为true,否则false

2. 分组

2.1 Group By 语句

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

  • 案例实操:

    • (1)计算emp表每个部门的平均工资
    select t.deptno, avg(t.sal) as avg_sal from emp t group by t.deptno;
    
    • (2)计算emp每个部门中每个岗位的最高薪水
    select t.deptno, t.job, max(t.sal) as  max_sal from emp t group by t.deptno, t.job;
    
2.2 Having语句
  • having 与 where 不同点

    • where针对表中的列发挥作用,查询数据;having针对查询结果中的列发挥作用,筛选数据

    • where后面不能写分组函数,而having后面可以使用分组函数

    • having只用于group by分组统计语句

  • 案例实操

    • 求每个部门的平均工资
    select deptno, avg(sal) from emp group by deptno;
    
    • 求每个部门的平均薪水大于2000的部门
    select deptno, avg(sal) avg_sal from emp group by deptno having avg_sal > 2000;
    

3. join语句(25分钟)

3.1 等值 join
  • Hive支持通常的SQL JOIN语句,但是只支持等值连接,不支持非等值连接。

  • 案例实操

    • 根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称;
    select e.empno, e.ename, d.deptno, d.dname from emp e join dept don e.deptno = d.deptno;
    
3.2 表的别名
  • 好处

    • 使用别名可以简化查询。

    • 使用表名前缀可以提高执行效率。

  • 案例实操

    • 合并老师与课程表
    select * from teacher t join course c on t.id = c.id;
    
3.3 内连接 inner join
  • 内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。
    • join默认是inner join
  • 案例实操
select * from teacher t inner join course c  on t.id = c.id;
3.4 左外连接 left outer join
  • 左外连接:join操作符左边表中符合where子句的所有记录将会被返回。

  • 案例实操

    • 查询老师对应的课程
     select * from teacher t left outer join course c  on t.id = c.id;
    
3.5 右外连接 right outer join
  • 右外连接:join操作符右边表中符合where子句的所有记录将会被返回。

  • 案例实操

     select * from teacher t right outer join course c  on t.id = c.id;
    
3.6 满外连接 full outer join
  • 满外连接:将会返回所有表中符合where语句条件的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用null值替代。

  • 案例实操

    select * from teacher t full outer join course c  on t.id = c.id;
    
3.7 多表连接
  • 多个表使用join进行连接

  • 注意:连接 n个表,至少需要n-1个连接条件。例如:连接三个表,至少需要两个连接条件。

  • 案例实操

    • 多表连接查询,查询老师对应的课程,以及对应的分数,对应的学生
    select * from teacher t  left join course c on t.id = c.idleft join score s on s.sid = c.cidleft join student stu on s.s_id = stu.s_id;
    

4. 排序

4.1 order by 全局排序
  • order by 说明

    • 全局排序,只有一个reduce
    • 使用 ORDER BY 子句排序
      • asc ( ascend)
        • 升序 (默认)
      • desc (descend)
        • 降序
    • order by 子句在select语句的结尾
  • 案例实操

    • 查询学生的成绩,并按照分数降序排列
    select * from student s order by score desc ;
    
4.2 按照别名排序
  • 按照学生分数的平均值排序
select s.sid,s.tname, avg(score)  as score_avg  from student s  group by  s.sid,s.tname order by score_avg  desc;
4.3 多个列排序
  • 按照学生分数和年龄升序排序
select *  from student s order by score,age;
4.4 每个MapReduce内部排序(Sort By)局部排序
  • sort by:每个reducer内部进行排序,对全局结果集来说不是排序。

    • 1、设置reduce个数

      set mapreduce.job.reduces=3;
      
      • 2、查看设置reduce个数

        set mapreduce.job.reduces;
        
    • 3、查询成绩按照成绩降序排列

       select * from student s sort by s.score;
      
    • 4、将查询结果导入到文件中(按照成绩降序排列)

      insert overwrite local directory '/home/hadoop/hivedata/sort' select * from student s sort by s.score;
      
4.5 distribute by 分区排序
  • distribute by:类似MR中partition,采集hash算法,在map端将查询的结果中hash值相同的结果分发到对应的reduce文件中。结合sort by使用。

  • 注意

    • Hive要求 distribute by 语句要写在 sort by 语句之前。
  • 案例实操

    • 先按照学生 sid 进行分区,再按照学生成绩进行排序

      • 设置reduce的个数
      set mapreduce.job.reduces=3;
      
      • 通过distribute by 进行数据的分区,,将不同的sid 划分到对应的reduce当中去
      insert overwrite local directory '/home/hadoop/hivedata/distribute' select * from student distribute by sid sort by score;
      
4.6 cluster by
  • 当distribute by和sort by字段相同时,可以使用cluster by方式

  • 除了distribute by 的功能外,还会对该字段进行排序,所以cluster by = distribute by + sort by

    --以下两种写法等价insert overwrite local directory '/home/hadoop/hivedata/distribute_sort' 
    select * from student distribute  by score sort  by score;insert overwrite local directory '/home/hadoop/hivedata/cluster' 
    select * from student cluster by score;

五、拓展

5.1 case … when … then 语句
  • case …when …then 语句和if 条件语句类似,用于处理单个列的查询结果

  • 案例实战

    • 创建表
    create table employee(
    empid int, 
    deptid int,
    sex string,
    salary double
    )row format delimited 
    fields terminated by ' ';
    • 数据文件 employee.txt
    1       10      female  5500.0
    2       10      male    4500.0
    3       20      female  1900.0
    4       20      male    4800.0
    5       40      female  6500.0
    6       40      female  14500.0
    7       40      male    44500.0
    8       50      male    6500.0
    9       50      male    7500.0
    
    • 查询统计

      • 将员工按照性别打上标识
      select *,
      case sex
      when "female" then 1 
      when "male" then 0
      end as flag 
      from employee;
      
      • 将员工按照薪资待遇划分等级
      select *,
      case 
      when salary < 5000 then "低等收入" 
      when salary>= 5000 and salary < 10000 then "中等收入"
      when salary > 10000 then "高等收入"  
      end  as level 
      from employee;
      
⭐️5.2 什么情况下Hive可以避免进行MapReduce
  • hive 为了执行效率考虑,简单的查询,就是只是select,不带count,sum,group by这样的,都不走map/reduce,直接读取hdfs目录中的文件进行filter过滤。也就是所谓的本地模式

    • 1、直接查询表的数据 不会进行Mapreduce

      select * from employee;
      
    • 2、查询语句中的过滤条件只是分区字段的情况下 不会进行Mapreduce。

      select * from order_partition where month='2019-03';
      
    • 此外,如果设置属性 set hive.exec.mode.local.auto=true; hive还是会尝试使用本地模式。

六、总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能之数学基础:矩阵的范数

本文重点 在前面课程中,我们学习了向量的范数,在矩阵中也有范数,本文来学习一下。矩阵的范数对于分析线性映射函数的特性有重要的作用。 矩阵范数的本质 矩阵范数是一种映射,它将一个矩阵映射到一个非负实数。 矩阵的范数 前面我们学习了向量的范数,只有当满足几个条…

I2C驱动(十一) -- gpio模拟的i2c总线驱动i2c-gpio.c分析

相关文章 I2C驱动(一) – I2C协议 I2C驱动(二) – SMBus协议 I2C驱动(三) – 驱动中的几个重要结构 I2C驱动(四) – I2C-Tools介绍 I2C驱动(五) – 通用驱动i2c-dev.c分析 I2C驱动(六) – I2C驱动程序模型 I2C驱动(七) – 编写I2C设备驱动之i2c_driver I2C驱动(八) – 编写I2C…

(KTransformers) RTX4090单卡运行 DeepSeek-R1 671B

安装环境为&#xff1a;ubuntu 22.04 x86_64 下载模型 编辑文件vim url.list 写入如下内容 https://modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/resolve/master/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf https://modelscope.cn/models/unsloth/Dee…

海康威视摄像头ISUP(原EHOME协议) 摄像头实时预览springboot 版本java实现,并可以在浏览器vue前端播放(附带源码)

1.首先说了一下为什么要用ISUP协议来取流 ISUP主要就是用来解决摄像头没有公网ip的情况,如果摄像头或者所在局域网的路由器有公网ip的话&#xff0c;其实采用rtsp直接取流是最方便也是性能最好的&#xff0c;但是项目的摄像头没有公网IP所以被迫使用ISUP&#xff0c;ISUP是海康…

SpringBoot原理-03.自动配置-方案

一.自动配置原理 探究自动配置原理&#xff0c;就是探究spring是如何在运行时将要依赖JAR包提供的配置类和bean对象注入到IOC容器当中。我们当前准备一个maven项目itheima-utils&#xff0c;这里面定义了bean对象以及配置类&#xff0c;用来模拟第三方提供的依赖&#xff0c;首…

高频 SQL 50 题(基础版)_2356. 每位教师所教授的科目种类的数量

高频 SQL 50 题&#xff08;基础版&#xff09;_2356. 每位教师所教授的科目种类的数量 select teacher_id ,count(distinct(subject_id)) as cnt from Teacher group by teacher_id

神经网络之词嵌入模型(基于torch api调用)

一、Word Embedding&#xff08;词嵌入&#xff09;简介 Word Embedding&#xff08;词嵌入&#xff09;&#xff1a; 词嵌入技术是自然语言处理&#xff08;NLP&#xff09;领域的一项重大创新&#xff0c;它极大地推动了计算机理解和处理人类语言的能力。 通过将单词、句子甚…

SpringBoot @Value 注解使用

Value 注解用于将配置文件中的属性值注入到Spring管理的Bean中。 1. 基本用法 Value 可以直接注入配置文件中的属性值。 配置文件 (application.properties 或 application.yml) 配置文件定义需要注入的数据。 consumer:username: lisiage: 23hobby: sing,read,sleepsubje…

Redis面试常见问题——使用场景问题

目录 Redis面试常见问题 如果发生了缓存穿透、击穿、雪崩&#xff0c;该如何解决&#xff1f; 缓存穿透 什么是布隆过滤器&#xff1f; 缓存击穿 缓存雪崩 双写一致性&#xff08;redis做为缓存&#xff0c;mysql的数据如何与redis进行同步呢&#xff1f;&#xff09; …

在Ubuntu 22.04 LTS 上安装 MySQL两种方式:在线方式和离线方式

Ubuntu安装MySQL 介绍&#xff1a; Ubuntu 是一款基于Linux操作系统的免费开源发行版&#xff0c;广受欢迎。它以稳定性、安全性和用户友好性而闻名&#xff0c;适用于桌面和服务器环境。Ubuntu提供了大量的软件包和应用程序&#xff0c;拥有庞大的社区支持和活跃的开发者社区…

用Java编写sql

1.概念 通过Java代码操作mysql数据库 数据库编程&#xff0c;是需要数据库服务器&#xff0c;提供一些API&#xff0c;供程序员调用的 2.安装 2.1下载 在程序中操作mysql需要先安装mysql的驱动包 并且要把驱动包引入到项目中 在中央仓库可以下载到驱动包(mvnrepository.…

Redis数据结构-List列表

1.List列表 列表类型适用于存储多个有序的字符串&#xff08;这里的有序指的是强调数据排列顺序的重要&#xff0c;不是升序降序的意思&#xff09;&#xff0c;列表中的每个字符串称为元素&#xff08;element&#xff09;&#xff0c;一个列表最多可以存储2^32-1个元素。在R…

Linux实操——在服务器上直接从百度网盘下载(/上传)文件

Linux Linux实操——在服务器上直接从百度网盘下载&#xff08;/上传&#xff09;文件 文章目录 Linux前言一、下载并安装bypy工具二、认证并授权网盘账号三、将所需文件转移至目的文件夹下四、下载文件五、上传文件六、更换绑定的百度云盘账户 前言 最近收到一批很大的数据&…

题解 | 牛客周赛82 Java ABCDEF

目录 题目地址 做题情况 A 题 B 题 C 题 D 题 E 题 F 题 牛客竞赛主页 题目地址 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 做题情况 A 题 判断字符串第一个字符和第三个字符是否相等 import java.io.*; import java.math.*; import java.u…

基金 word-->pdf图片模糊的解决方法

1. 首先需要Adobe或福昕等pdf阅读器。 2. word中 [文件]--[打印]&#xff0c;其中打印机选择pdf阅读器&#xff0c;例如此处我选择福昕阅读器。 3. 选择 [打印机属性]--[编辑]--[图像]&#xff0c;将所有的采样、压缩均设置为 关闭。点击[另存为]&#xff0c;保存为 基金报告…

基于RKNN的嵌入式深度学习开发(2)

上一个章节我们介绍的RKNN模型的模型转换和模型的推理&#xff0c;这一章节我们将介绍模型的量化和评估部分。 2.3 RKNN模型的量化 量化就是将浮点转换为定点运算的过程&#xff0c;或者训练后由rknn来量化。量化模型使用较低精度&#xff08;如int8/uint8/int16&#xff09;保…

Qt 中signals和slots、Q_SIGNAL和Q_LOT、Q_SIGNALS和Q_SLOTS的区别和使用

Qt 中signals和slots、Q_SIGNAL和Q_SLOT、Q_SIGNALS和Q_SLOTS的区别和使用 1.signals和slots 信号和槽函数需要在类的声明中明确声明。信号需要使用signals关键字&#xff0c;而槽函数可以使用slots关键字&#xff08;虽然在现代Qt中&#xff0c;槽函数也可以直接作为普通成员…

【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器- 2.1 Chrome架构:仅仅打开了1个页面,为什么有4个进程?

https://time.geekbang.org/column/article/113513 2.1 Chrome架构&#xff1a;仅仅打开了1个页面&#xff0c;为什么有4个进程&#xff1f; 前置&#xff1a;基于Chrome浏览器学习浏览器的工作原理 原因&#xff1a; 因为 Chrome、微软的 Edge 以及国内的大部分主流浏览器…

智能图像处理平台:图像处理配置类

这里我们先修改一下依赖&#xff0c;不用JavaCV&#xff0c;用openCV。 导入依赖&#xff1a; <!-- JavaCV 依赖&#xff0c;用于图像和视频处理 --> <!-- <dependency>--> <!-- <groupId>org.bytedeco</groupId>--> &l…

【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南

欢迎来到ZyyOvO的博客✨&#xff0c;一个关于探索技术的角落&#xff0c;记录学习的点滴&#x1f4d6;&#xff0c;分享实用的技巧&#x1f6e0;️&#xff0c;偶尔还有一些奇思妙想&#x1f4a1; 本文由ZyyOvO原创✍️&#xff0c;感谢支持❤️&#xff01;请尊重原创&#x1…