Hive中UNION ALL和UNION的区别
1.概述
Hive官方提供了一种联合查询的语法,原名为Union Syntax,用于联合两个表的记录进行查询,此处的联合和join是不同的,join是将两个表的字段拼接到一起,而union是将两个表的记录拼接在一起。 换言之, join是用于左右拼接,而union是用于上下拼接。
2.语法
select_statement UNION [ALL | DISTINCT] select_statement UNION [ALL | DISTINCT] select_statement ...
UNION是将多个查询结果集合并到一个结果中。UNION与UNION ALL的区别是 union会对两个子查询的结果去重合并,而union all不会对子查询结果去重处理。
注:
- Hive 1.2.0之前的版本仅支持UNION ALL,其中重复的行不会被删除。
- Hive 1.2.0和更高版本中, union的默认从结果中删除重复行。使用可选的distinct关键字指定了删除重复行。使用可选的all关键字,不会删除重复行,结果包含select语句中的所有匹配行。
- 可以在同一查询中混合使用union all和union distinct。
- 每个select语句返回的列的数量和名称必须相同,否则报错。
3.使用案例
3.1 准备数据
test1表数据
| id | username | ds |
|---|---|---|
| 001 | zhangsan | 20240307 |
| 002 | lisi | 20240307 |
| 003 | wangwu | 20240307 |
test2表数据
| id | username | ds |
|---|---|---|
| 002 | lisi | 20240307 |
| 003 | wangwu | 20240307 |
| 004 | zhaoliu | 20240307 |
3.2 查询结果
UNION的查询结果
SELECT id,username
FROM test1
WHERE ds = '${bizdate}'
UNION
SELECT id,username
FROM test2
WHERE ds = '${bizdate}';
| id | username |
|---|---|
| 001 | zhangsan |
| 002 | lisi |
| 003 | wangwu |
| 004 | zhaoliu |
UNION ALL 的查询结果
| id | username |
|---|---|
| 002 | lisi |
| 003 | wangwu |
| 001 | zhangsan |
| 002 | lisi |
| 004 | zhaoliu |
| 003 | wangwu |
4.总结
| 联合查询方式 | UNION | UNION ALL |
|---|---|---|
| 对重复结果的处理 | 筛选掉重复的结果 | 不会去除重复记录 |
| 对排序的处理 | 将两个结果合并后并返回 | 会按照字段的顺序进行排序 |
| 效率 | 快 | 慢 |
| 总述 | 不去重不排序 | 去重并排序 |
- UNION ALL:不去重不排序直接原表合并。
- UNION:先表合并、再去重、再排序。<=>作用等价于 先distinct去重、再UNION ALL表合并、再order by排序。
- 效率方面,UNION是UNION ALL的3倍。数据量大时,不建议直接用UNION,建议先去重再UNION ALL。
相关文章:
Hive中UNION ALL和UNION的区别
1.概述 Hive官方提供了一种联合查询的语法,原名为Union Syntax,用于联合两个表的记录进行查询,此处的联合和join是不同的,join是将两个表的字段拼接到一起,而union是将两个表的记录拼接在一起。 换言之, jo…...
selenium高级应用
常见控件应用 复杂的控件操作1.操作Ajax选项2.滑动滑块操作 WebDriver的特殊操作元素class值包含空格property、attribute、text的区别定位动态id 截图功能页面截图页面截图,返回截图的二进制数据页面截图,返回base64的字符串截取指定元素。先定位元素&a…...
微信小程序重新加载当前页面、刷新当前页面
重新加载页面 使用wx.reLanuch(),url: 路径当前页面跳转, 页面所有数据重新初始化,已配置的数据不会保存 wx.reLaunch({url: /pages/orders/createOrder/createOrder, // 当前页面的路径}) reLanuch()的方法,会有一个…...
如何查找、恢复误清空的 Android 回收站?
“我的回收站里有一些照片。当我点击“恢复”时,没有任何反应。我可以将我的 Android 手机插入我的电脑。这样我就可以手动恢复它们。但我在 Android 上找不到 bin 文件夹。我还可以做些什么?” 随着 Android 手机上的文件数量不断增加,了解…...
Node.js作用
Node.js可以开发应用 开发服务器应用 开发工具类应用 开发桌面端应用...
Web爬虫入门:原理、实现与常见问题解决指南
引言: 在当今数据驱动的时代,网络上蕴藏着无尽的信息宝藏,而爬虫技术则是探索和利用这些宝藏的重要工具。爬虫,简单来说,就是一种自动化程序,它能够模拟人类浏览网页的行为,从中提取所需数据。…...
蓝桥杯练习题——归并排序
1.火柴排队 思路 1.求最小值的时候,可以直接按升序排序,这样得到的值就是最小值 2.求最小交换次数的时候,不能直接排序,因为只能交换相邻的数,只需要知道他们的相对大小,所以可以先用离散化,把…...
C语言--- 指针运算笔试题详解
目录 题目1: 题目2: 题目3: 题目4: 题目5: 题目6: 题目7: 题目1: #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);print…...
甘特图是什么,怎么制作?一文让你看懂
甘特图是什么 甘特图是一种项目管理工具,通过图形化的方式直观的能体现出任务、进度和资源在时间里的关系。 白话文就是: 项目分解成了哪些任务?每天计划做什么任务?当前每个任务的进度是多少?项目整体进度是多少?这个项目有…...
mysql笔记:6. 存储引擎
文章目录 查看引擎信息常用引擎介绍InnoDBMyISAMMEMORY存储引擎的选择 数据库存储引擎是数据库底层组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等,使用不同的存储引擎&#…...
(golang)切片何时会创建新切片或影响原切片
什么时候切片操作会影响原切片 // 1.切片后没有触发slice的扩容机制时 什么时候对切片操作会创建新切片不影响原切片 // 2.对切片头元素进行截取的时候 // 3.当使用append时,len > cap则会触发扩容机制 前置: //slice结构体 type SliceHeader struct…...
前端面试——W3C标准及规范
W3C标准 1、万维网联盟标准不是某一个标准,而是一些列标准的集合。 简单来说可以分为结构、表现和行为 结构 主要是有HTML标签组成 表现 即指css样式表 行为 主要是有js、dom组成 web标准一般是将该三部分独立分开,使其更具有模块化。但一般产生行为时&…...
读算法的陷阱:超级平台、算法垄断与场景欺骗笔记07_价格歧视
1. 行为歧视 1.1. 单个企业通过使用数据驱动的算法,从而更好地实现锁定客户、开展个性化营销与定价的目的 1.2. 市场环境再次发生了变化 1.2.1. 在共谋场景中,定价算法提高了企业经营者在销量数据上的透明性…...
数据结构 之 链表LinkedList
目录 1. ArrayList的缺陷: 2. 链表: 2.1 链表的概念及结构: 3. 链表的使用和模拟实现: 3.1 构造方法: 3.2 模拟实现: 4. 源码分享: 在我学习顺序表之后,我就立马开始了链表的学…...
事务【MySQL】
事务的概念 引入 在 A 转账 100 元给 B 的过程中,如果在 A 的账户已经减去了 100 元,B 的账户还未加上 100 元之前断网,那么这 100 元将会凭空消失。对于转账这件事,转出和转入这两件事应该是绑定在一起的,任意一个动…...
Anaconda 的一些配置
Anaconda 安装及修改环境默认位置 https://blog.csdn.net/qq_54562136/article/details/128932352 最重要的一步!!!!!改文件夹权限 Anaconda创建、激活、退出、删除虚拟环境 修改pip install 默认安装路径...
利用Nginx正向代理实现局域网电脑访问外网
引言 在网络环境中,有时候我们需要让局域网内的电脑访问外网,但是由于网络策略或其他原因,直接访问外网是不可行的。这时候,可以借助 Nginx 来搭建一个正向代理服务器,实现局域网内电脑通过 Nginx 转发访问外网的需求…...
SpringMVC03、HelloSpring
3、HelloSpring 3.1、配置版 新建一个Moudle , springmvc-02-hello , 添加web的支持! 确定导入了SpringMVC 的依赖! 配置web.xml , 注册DispatcherServlet <?xml version"1.0" encoding"UTF-8…...
IOS面试题object-c 1-10
1、简述Object-C的理解与特性? OC 作为一门 面向对象 的语言,自然具有面向对象的语言特性:封装、继承、多态。 它既具有 静态语言的特性(如C),又有 动态语言的效率(动态绑定、动态加载等&#…...
原生JavaScript,根据后端返回扁平JSON动态【动态列头、动态数据】生成表格数据
前期准备: JQ下载地址: https://jquery.com/ <!DOCTYPE html> <html><head><meta charset"utf-8"><title>JSON动态生成表格数据,动态列头拼接</title><style>table {width: 800px;text-align: cen…...
手把手教程:用EagleEye镜像3步实现实时目标检测,小白也能轻松上手
手把手教程:用EagleEye镜像3步实现实时目标检测,小白也能轻松上手 1. 为什么选择EagleEye镜像? 目标检测是计算机视觉中最基础也最重要的任务之一,但传统方法往往面临两个难题:要么速度太慢无法实时处理,…...
如何在Windows系统中实现游戏手柄的通用兼容性?
如何在Windows系统中实现游戏手柄的通用兼容性? 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 对于许多PC游戏玩家而言,手柄兼容性问…...
FreeMove:Windows目录迁移终极解决方案,98%成功率释放C盘空间
FreeMove:Windows目录迁移终极解决方案,98%成功率释放C盘空间 【免费下载链接】FreeMove Move directories without breaking shortcuts or installations 项目地址: https://gitcode.com/gh_mirrors/fr/FreeMove 你是否经常因为C盘空间不足而烦恼…...
OpenClaw+gemma-3-12b-it:自动化周报生成与邮件发送实战
OpenClawgemma-3-12b-it:自动化周报生成与邮件发送实战 1. 为什么需要自动化周报处理? 每周五下午,我的日历总会准时弹出"编写周报"的提醒。作为技术从业者,明明每天都在GitHub提交代码、在Jira更新任务状态、在飞书讨…...
mPLUG部署避坑指南:缓存机制加速,第二次提问秒出结果
mPLUG部署避坑指南:缓存机制加速,第二次提问秒出结果 你是否遇到过这样的场景:部署一个AI模型,第一次运行还算顺利,但每次重启服务或再次调用时,又要经历漫长的模型加载等待?尤其是在处理图片分…...
HowTo-易连EDI-EasyLink如何进行一键部署
在易连EDI-EasyLink里,项目开发完毕时,可以点击功能菜单“部署包”功能进行一键部署。首先“创建” 部署包,输入名称和备注。然后点击“打包”打包日志如果没有错误,即为打包完成。紧接着,点击”部署”此时,…...
QCustomPlot 深度解析:从渲染架构到源码内幕
一、QCustomPlot 是什么,不是什么QCustomPlot 是一个 Qt 绘图库,核心就两个文件:qcustomplot.h qcustomplot.cpp。不是 Qt 官方库,不属于 Qt 模块,但做得比 Qt Charts 干净得多。设计哲学:扩展 Qt 的 QPai…...
【2026企业级Blazor落地白皮书】:金融/医疗场景下SSR+Hydration+Streaming SSR三模混合渲染实战(附GCP/Azure边缘部署Checklist)
第一章:Blazor 2026企业级落地战略全景图 Blazor 正在从“可选框架”跃迁为 2026 年企业级 .NET 应用的默认前端架构范式。其核心驱动力并非仅限于 C# 全栈统一,更在于 WebAssembly 运行时成熟度、AOT 编译稳定性提升、以及与 Azure Static Web Apps、Mi…...
使用 C# 删除 PDF 中的数字签名们
一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...
《道德经》第九章
本章以持而盈之功成身退为核心,是道家保身、持满、长久的警示章。老子用“持盈、揣锐、富贵而骄”三组世俗常见困境,指出过刚则折、过满则溢、过骄则亡的天道规律,最终以“功成身退,天之道”点破最高处世心法,是全书最…...
