Hive SQL-DQL-Select查询语句用法详解

HQL Select用法详解

在这里插入图片描述

1.基础语法

在这里插入图片描述

(1)select_exp

在这里插入图片描述

(2)ALL、DISTINCT

在这里插入图片描述

(3)WHERE

在这里插入图片描述
在这里插入图片描述

(4)分区查询、分区裁剪

在这里插入图片描述

(5)GROUP BY

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(6)HAVING

在这里插入图片描述
在这里插入图片描述

(7)LIMIT

在这里插入图片描述

在这里插入图片描述

(8)执行顺序

在这里插入图片描述

2.高阶语法

在这里插入图片描述

(1)ORDER BY

在这里插入图片描述

在这里插入图片描述

(2)CLUSTER BY

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)DISTRIBUTE BY + SORT BY

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)UNION联合查询

在 Hive 中,可以使用 UNION 操作符执行联合查询,将多个查询的结果合并为一个结果集。UNION 操作符用于合并两个或多个 SELECT 语句的结果集,并去除重复的行。
在这里插入图片描述

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

在这个语法中,SELECT 语句必须具有相同数量和类型的列,它们的顺序也必须相同。UNION 将两个 SELECT 语句的结果集合并,并自动去除重复的行。

如果需要保留重复的行,可以使用 UNION ALL 操作符:

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

注意事项和限制:

  1. 列数和数据类型必须匹配: 在每个 SELECT 子句中,列数和数据类型必须匹配。如果不匹配,Hive 将会抛出错误。

  2. 列顺序必须相同: 虽然不同的 SELECT 子句可以选择不同的列,但它们的顺序必须相同。否则,Hive 会抛出错误。

  3. 列名可能取决于第一个 SELECT 语句: 在某些情况下,联合查询的结果集中的列名可能取决于第一个 SELECT 语句中的列名。因此,最好保持所有 SELECT 语句中列名的一致性。

  4. 重复行处理: UNION 默认会去除重复的行,而 UNION ALL 会保留所有行,包括重复的行。

  5. 性能注意: 联合查询可能会对性能产生影响,特别是在处理大量数据时。在可能的情况下,应尽量减少联合查询的数量,或者使用其他性能更好的方法。

在这里插入图片描述

(5)子查询

在这里插入图片描述
在这里插入图片描述

(6)CTE表达式

在这里插入图片描述
CTE(Common Table Expression,公共表达式)是 SQL 中一种可用于创建临时命名结果集的结构。它们通常与递归查询一起使用,但也可以在常规查询中提高可读性和可维护性。

在 Hive SQL 中,CTE 使用 WITH 关键字来定义,它允许你为一个查询定义一个临时的命名结果集,然后在主查询中引用它。这对于分解复杂的查询逻辑、避免重复计算以及提高查询可读性都非常有用。

以下是一个示例,演示了如何在 Hive SQL 中使用 CTE:

假设你有一个表 employees,包含员工的 ID、姓名和工资信息。现在,假设你想要找到工资高于平均工资的员工。你可以使用 CTE 来计算平均工资,并在主查询中引用它:

WITH avg_salary AS (
    SELECT AVG(salary) AS avg_salary
    FROM employees
)
SELECT emp_id, emp_name, salary
FROM employees
WHERE salary > (SELECT avg_salary FROM avg_salary);

在上面的示例中,avg_salary 是一个 CTE,它计算了 employees 表中所有员工的平均工资。然后,在主查询中,我们使用了这个 CTE 来过滤出工资高于平均工资的员工。

使用 CTE 可以使查询更加模块化和易读,同时避免了重复计算。它们还可以帮助分解复杂的查询逻辑,使查询更易于理解和维护。需要注意的是,虽然 CTE 在 Hive SQL 中非常有用,但并不是所有的数据库都支持这个功能。

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

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

相关文章

hadoop学习---基于Hive的教育平台数据仓库分析案例(三)

衔接第一部分,第一部分请点击:基于Hive的教育平台数据仓库分析案例(一) 衔接第二部分,第二部分请点击:基于Hive的教育平台数据仓库分析案例(二) 学生出勤模块(全量分析)&#xff1a…

Densenet+SE

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊# 前言 前言 这周开始学习关于经典模型的改进如加注意力机制,这周学习Densenet加通道注意力即SE注意力机制。 ##SE注意力机制简介 SE(…

自定义shell

1、首先我们的程序要打印出命令行 命令行》用户名【主机名】当前路劲$:命令字符串 用户名、主机名、当前路径可以通过系统调用函数getenv()得到: 2、获取命令字符串 把输入的命令字符串放到一个指针数组中 但是我们发现用scanf函数输入的话,遇到空…

【数据结构】-- 链表专题

链表的分类 前面我们实现了单链表,单链表只是链表的一种。可以根据以下几个标准来判断链表的类型: 1.单向或者双向 如图所示,单向链表中一个节点的指针域只储存了下一个节点的指针,能通过前一个节点访问后一个节点,无…

Vue 3.3 编译宏 vue3.3新增了一些语法糖和宏,包括泛型组件、defineSlots、defineEmits、defineOptions

Vue 3.3新增了一些语法糖和宏&#xff0c;包括泛型组件、defineSlots、defineEmits、defineOptions defineProps 父组件传参 <template><Child name"my"></Child> </template> <script setup lang"ts"> import Child fro…

使用Docker安装Yapi接口管理工具

简介&#xff1a; YAPI 是由去哪儿网移动架构组开发的一款可视化接口管理工具。它具有可视化管理、高效易用、功能强大等特点。它提供了便捷的接口创建、发布和维护方式&#xff0c;开发人员可以通过简单的操作实现接口管理。 YAPI 还支持类似 postman 的接口调试&#xff0c;对…

06-数组

1. 为什么需要数组 一个养鸡场有6只鸡&#xff0c;它们的体重分别是3kg&#xff0c;4kg&#xff0c;1kg&#xff0c;2kg&#xff0c;6kg&#xff0c;3kg。 没有数组&#xff0c;就需要定义六个变量&#xff0c;一个变量代表一只鸡的体重。 使用数组&#xff0c;就可以定义一…

TypeScript学习日志-第二十三天(装饰器Decorator)

装饰器Decorator 一、类装饰器 ClassDecorator 其中返回的 target 是 Http 的构造函数&#xff0c;有了构造函数就不会去破坏其自身原有的结构&#xff0c;当我们 Http 里面有多个属性或者方法的&#xff0c;当是我们不想看或者改变它&#xff0c;这时候可以在构造函数中增加即…

【Mybatis操作数据库】入门(一)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MyBatis框架】 本专栏旨在分享MyBatis框架的学习笔记&#xff0c;如有错误定当洗耳恭听&#xff0c;欢迎大家在评论区交流讨论&#x1f…

59岁前TVB男拳王内地登台疑黑面 被批耍大牌

现年59岁的郭政鸿在2015年离巢TVB后转往内地发展&#xff0c;密密拍剧、登台及直播带货&#xff0c;短短几年就已经储够钱&#xff0c;斥资过千万买楼&#xff0c;成功上车做业主&#xff0c;可见收入丰厚。 早前郭政鸿现身顺德&#xff0c;在酒吧登台唱歌&#xff0c;有网民上…

《铁路出行更便捷:火车票预定审批系统的设计与应用》

在现代化的铁路交通管理中&#xff0c;火车票预定审批系统扮演着至关重要的角色。它不仅能够有效管理员工出差、培训等需要乘坐火车的行程&#xff0c;还能够提高审批效率&#xff0c;减少人力成本&#xff0c;确保出行安全。本文将探讨火车票预定审批系统的设计原则和应用场景…

计算机毕业设计Python+Spark知识图谱医生推荐系统 医生门诊预测系统 医生数据分析 医生可视化 医疗数据分析 医生爬虫 大数据毕业设计 机器学习

摘 要 随着我国社会经济发展水平的不断提高&#xff0c;人们的物质生活水平也有了很大的改善&#xff0c;越来越多的人不满足于当前的医疗服务质量&#xff0c;由于地域和空间的限制&#xff0c;医疗资源不平衡&#xff0c;无法实现全民共享。针对当今社会中存在的求医难的问题…

智能家居2 -- 实现网络控制模块

这一模块的思路和前面的语言控制模块很相似&#xff0c;差别只是调用TCP 去控制 废话少说&#xff0c;放码过来 增添/修改代码 socket_interface.c #include <pthread.h>#include "socket_interface.h" #include "control.h" #include "socke…

【教程】超简单!如何将“在VSCode中打开”添加到右键菜单中

按照以下步骤进行操作&#xff1a; 打开注册表编辑器&#xff1a; 按下 Win R 组合键打开运行对话框。输入 regedit 并按下 Enter 键打开注册表编辑器。 导航到适当的注册表项&#xff1a; 转到以下注册表项&#xff1a;HKEY_CLASSES_ROOT\Directory\Background\shell 创建…

26版SPSS操作教程(高级教程第十九章)

目录 前言 粉丝及官方意见说明 第十九章一些学习笔记 第十九章一些操作方法 树模型、随机森林与最近邻元素法 树模型 数据准备 具体操作 结果解释 对案例的进一步分析 结果解释 考虑应用模型时的成本与收益 保存新数据 在选项中看错误分类成本和利润 结果解释…

【管理篇】如何管理情绪?

目录标题 为什么要特别关注激动和愤怒两种情绪呢&#xff1f;管理自己的情绪大致的步骤三层脑结构爬行脑情绪脑视觉脑 大家说的情绪管理&#xff0c;基本上都是对于情绪激动、生气甚至是愤怒的管理&#xff1b;日常所说的情绪化&#xff0c;一般也是指某个人特别容易情绪激动&a…

Gitlab自动化测试的配置

1. 代码分支命名规范检测 Setting → Repository → Push rules → Branch name&#xff0c;添加分支命名规范对应的正则表达式。如&#xff1a; ^(Release|Tag|Develop|Feature)_._.|Main$ 表示分支名只能以以下关键字之一开头&#xff1a;Release、Tag、Develop和Feature。 …

基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真。 2.系统仿真结果 输入的V&#xff0c;Ac&#xff0c;a 输出的档位&#xff1a; 3.核心程序与模型 版…

【BST】Behavior Sequence Transformer for E-commerceRecommendation in Alibaba

一、提出背景 传统的Embedding&MLP模型结构将原始特征嵌入到低维向量中&#xff0c;然后将其concat后输入MLP进行最终推荐。DIN提出使用注意力机制来捕获候选项与用户先前点击的项之间的相似性。 然而&#xff0c;大多数这些工作只是连接不同的特征&#xff0c;而没有捕获用…

通过 Java 操作 redis -- hash 哈希表基本命令

目录 使用命令 hset&#xff0c;hget 使用命令 hexists 使用命令 hdel 使用命令 hkeys&#xff0c;hvals 使用命令 hmget&#xff0c;hmset 关于 redis hash 哈希表类型的相关命令推荐看Redis - hash 哈希表 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务…