SQL函数--union all 使用方法及案例

1. 使用方法

在 SQL 中,UNION ALL 操作用于结合两个或更多 SELECT 语句的结果集,包括所有匹配的行,甚至包括重复的行。这与 UNION 不同,因为 UNION 会自动删除重复的行。

满足条件:

1、两个select查询的列的数量必须相同。

2、每个列的数据类型需要相似。

2. 案例一

假设有两个表,table1table2,它们都有相同的列结构(例如,都有 idname 列):

java 复制代码
-- table1 的数据  
id | name  
---|------  
1  | Alice  
2  | Bob  
  
-- table2 的数据  
id | name  
---|------  
3  | Carol  
2  | Bob

如果你想从这两个表中检索所有的行,并保留可能的重复行,你可以使用 UNION ALL

java 复制代码
SELECT id, name FROM table1  
UNION ALL  
SELECT id, name FROM table2;

这将返回以下结果:

java 复制代码
id | name  
---|------  
1  | Alice  
2  | Bob  
3  | Carol  
2  | Bob

3. 案例二

列转换成行

假设我们有一个表sales_summary,它包含了每种产品的销售额汇总:

java 复制代码
CREATE TABLE sales_summary (
    A_sales DOUBLE,
    B_sales DOUBLE,
    C_sales DOUBLE
);

INSERT INTO sales_summary VALUES (250, 200, 300),(100,190,800),(290,290,880),(280,720,990);

现在,我们想要将这个表转换为每行一个产品及其销售额的格式。我们可以使用UNION ALL来实现这一点:

java 复制代码
SELECT 'A' AS product_type, A_sales AS amount FROM sales_summary
UNION ALL
SELECT 'B' AS product_type, B_sales AS amount FROM sales_summary
UNION ALL
SELECT 'C' AS product_type, C_sales AS amount FROM sales_summary;

返回结果:

相关推荐
盐焗西兰花3 小时前
鸿蒙学习实战之路:状态管理最佳实践
学习·华为·harmonyos
一颗宁檬不酸3 小时前
文件管理知识点
数据库
3 小时前
达梦数据库-事务
数据库·达梦数据库·dm
小毅&Nora4 小时前
【人工智能】【深度学习】 ⑦ 从零开始AI学习路径:从Python到大模型的实战指南
人工智能·深度学习·学习
Maxwell_li14 小时前
Pandas 描述分析和分组分析学习文档
学习·数据分析·numpy·pandas·matplotlib
网硕互联的小客服4 小时前
MYSQL数据库和MSSQL数据库有什么区别?分别适用于什么脚本程序?
数据库·mysql·sqlserver
雷工笔记4 小时前
MES学习笔记之SCADA采集的数据如何与MES中的任务关联起来?
笔记·学习
weixin_462446235 小时前
【原创实践】python 获取节假日列表 并保存为excel
数据库·python·excel
繁星星繁5 小时前
【C++】脚手架学习笔记 gflags与 gtest
c++·笔记·学习
计算机毕设匠心工作室5 小时前
【python大数据毕设实战】全球大学排名数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql