深入理解 SQL UNION 运算符及其应用场景
SQL UNION 运算符
SQL UNION
运算符用于组合两个或多个SELECT
语句的结果集。
每个
UNION
中的SELECT
语句必须具有相同数量的列。列的数据类型也必须相似。
每个
SELECT
语句中的列也必须按照相同的顺序排列。
UNION 语法
UNION ALL 语法UNION
运算符默认仅选择不同的值。为了允许重复的值,请使用UNION ALL
:
注意:结果集中的列名通常等于第一个*SELECT
*语句中的列名。
演示数据库
在本教程中,我们将使用著名的 Northwind 示例数据库。
Customers 表部分选择:
Suppliers 表部分选择:
SQL UNION 示例
以下 SQL 语句从“Customers”和“Suppliers”表中返回城市(仅不同的值):
注意:如果一些客户或供应商具有相同的城市,每个城市将只列出一次,因为*UNION
仅选择不同的值。使用UNION ALL
*也选择重复的值!
SQL UNION ALL 示例
以下 SQL 语句从“Customers”和“Suppliers”表中返回城市(还包括重复的值):
带有 WHERE 的 SQL UNION
以下 SQL 语句从“Customers”和“Suppliers”表中返回德国的城市(仅不同的值):
带有 WHERE 的 SQL UNION ALL
以下 SQL 语句从“Customers”和“Suppliers”表中返回德国的城市(还包括重复的值):
另一个 UNION 示例
以下 SQL 语句列出了所有客户和供应商:
请注意上面的AS Type
- 它是一个别名。SQL 别名用于给表或列一个临时的名称。别名仅在查询的持续时间内存在。因此,这里我们创建了一个名为“Type”的临时列,其中列出了联系人是“Customer”还是“Supplier”。
SQL GROUP BY 语句
GROUP BY
语句将具有相同值的行分组为摘要行,通常与聚合函数一起使用,以根据一个或多个列对结果集进行分组。
GROUP BY 语法
演示数据库
以下是 Northwind 示例数据库中“Customers”表的一部分选择:
SQL GROUP BY 示例
以下 SQL 语句列出了每个国家的客户数量:
以下 SQL 语句列出了每个国家的客户数量,按高到低排序:
演示数据库
以下是 Northwind 示例数据库中“Orders”表的一部分选择:
以及“Shippers”表的一部分选择:
带有 JOIN 的 GROUP BY 示例
以下 SQL 语句列出了每个承运人发送的订单数量:
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding
,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注
版权声明: 本文为 InfoQ 作者【小万哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/8b88ddc5364422dc7185632fa】。文章转载请联系作者。
评论