Hive----语句执行顺序

简介: 语句执行顺序

hive查询语句的执行顺序:

 

关键词

备注

(1) from

 

(2) on

 

(3) join

full join 合并,不去重,列拼接

(4) where

 

(5) group by

同时计算聚合函数,具有去重作用,分组去重,效率比distinct高;一定要与聚合函数连用

(6) having

必须跟 group by 连用

(7) select

    1. 由于select执行顺序在 guoup by 之后,因此如果某字段用到函数处理,且该字段恰又被聚合函数使用,需在查询语句中嵌套子查询,内层计算字段处理函数,外层计算聚合函数
    2. 若语句含有函数,先执行非开窗函数,然后执行开窗函数,然后 select 查询所有字段,开窗函数通过表数据进行分区和排序,跟select 查询中的其它字段是平行关系,不依赖查询字段

(8) distinct

去重,需要加载整个表的数据到一个reduce,效率较低,会导致数据倾斜,不如group by好

用法:放在字段名称前面

(9) distribute by /cluster by

cluster by 相当于合并了distribute by与sort by

(10) sort by

局部排序,每个reduce内部的排序

(11) order by

全局排序

(12) limit

 

(13) union /union all

union 去重,行拼接,字段得相同;union all 不去重合并,也可用于数据插入使用

注:此执行顺序为SQL语句的执行顺序,非Hive执行计划中的执行顺序!

distinct

SELECT DISTINCT class from stud  ;取出stud表中的班级有哪些,distinct 负责去重!

主要用于去重

 

注意事项:

  1. distinct 与all(代表查询所有,默认省略)相对应,不能同时使用
  2. 当 distinct 应用后面所有字段时,应放到最前面(select 之后),字段不加括号

selelct distinct name,city from student;

  1. distinct 单独用于某个字段时,需要加上括号

select count(distinct (user_id));

 

特殊案例:

select count(distinct name) from A;          --表中name去重后的数目, 此写法SQL Server支持,而Access不支持


目录
相关文章
|
SQL HIVE
Hive SQL语句的正确执行顺序
关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group by 执行的先后顺序,有说 select 先执行,有说 group by 先执行,到底它俩谁先执行呢?
1390 0
Hive SQL语句的正确执行顺序
|
7月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
198 1
|
SQL Java 大数据
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
Hive实战(03)-深入了解Hive JDBC:在大数据世界中实现数据交互
619 1
|
SQL 分布式计算 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
159 0
|
7月前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
263 0
|
SQL 存储 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
147 0
|
7月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
278 0
|
7月前
|
SQL 存储 分布式计算
【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)
【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)
1113 0
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
47 0
|
5月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。