【PostgreSQL】数据查询-组合查询(UNION,INTERSECT,EXCEPT)

这篇具有很好参考价值的文章主要介绍了【PostgreSQL】数据查询-组合查询(UNION,INTERSECT,EXCEPT)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PostgreSQL数据查询-组合查询(UNION,INTERSECT,EXCEPT)

PostgreSQL可以使用集合运算并集、交集和差值来组合两个查询的结果。语法是

query1 UNION [ALL] query2
query1 INTERSECT [ALL] query2
query1 EXCEPT [ALL] query2

其中 query1 和 query2 是可以使用到目前为止讨论的任何功能的查询。

UNION有效地将 query2 的结果追加到 query1 的结果(尽管不能保证这是实际返回行的顺序)。此外,它从其结果中消除重复的行,其方式与DISTINCT 相同,除非使用UNION ALL。

INTERSECT返回 Query1 的结果和 Query2 的结果中的所有行。除非使用重复行,否则将消除重复行。

EXCEPT返回 Query1 结果中但不在 Query2 结果中的所有行。(这有时称为两个查询之间的差异。同样,除非使用,否则将消除重复项。

为了计算两个查询的并集、交集或差值,这两个查询必须“并集兼容”,这意味着它们返回相同数量的列,并且相应的列具有兼容的数据类型。

集合操作可以组合,例如

query1 UNION query2 EXCEPT query3

这相当于

(query1 UNION query2) EXCEPT query3

如此处所示,您可以使用括号来控制计算顺序。不带括号,从左到右关联,但比这两个运算符绑定得更紧密。因此

query1 UNION query2 INTERSECT query3

方法

query1 UNION (query2 INTERSECT query3)

还可以用括号将单个查询括起来。如果查询需要使用以下各节中讨论的任何子句,例如 .如果没有括号,您将收到语法错误,否则该子句将被理解为应用于集合操作的输出,而不是其输入之一。例如LIMIT

SELECT a FROM b UNION SELECT x FROM y LIMIT 10

被接受,但这意味着

(SELECT a FROM b UNION SELECT x FROM y) LIMIT 10

而不能接受文章来源地址https://www.toymoban.com/news/detail-785632.html

SELECT a FROM b UNION (SELECT x FROM y LIMIT 10)

到了这里,关于【PostgreSQL】数据查询-组合查询(UNION,INTERSECT,EXCEPT)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】查询PostgreSQL中所有表逻辑外键

    在PostgreSQL数据库中,逻辑外键是用于约束表之间关系的一种机制。然而,在某些情况下,我们可能需要删除和重建逻辑外键。本文将介绍如何查询PostgreSQL中所有表的逻辑外键,并指导您如何先删除再重新建立这些外键。 要查询PostgreSQL中所有表的逻辑外键,您可以使用以下

    2024年02月10日
    浏览(37)
  • PostgreSQL存储过程 postgresql如果查询出的数据为空,则设为0  或 ‘’

    PostgreSQL安装和创建用户和创建数据库 - 短毛兔 - 博客园   PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。 PostgreSQL 开发者把它念作 post-gress-Q-L。免费和开源。 基本类型:Integer, Numeric, String, Boolean 结构类型:Date/Time, Array, Range, UUID 文档类型:

    2023年04月08日
    浏览(29)
  • 页面查询多项数据组合的线程池设计 | 京东云技术团队

    我们应对并发场景时一般会采用下面方式去预估线程池的线程数量,比如QPS需求是1000,平均每个任务需要执行的时间是t秒,那么我们需要的线程数是t * 1000。 但是在一些情况下,这个t是不好估算的,即便是估算出来了,在实际的线程环境上也需要进行验证和微调。比如在本

    2024年02月07日
    浏览(45)
  • PostgreSQL数据库以任意时间间隔聚合查询group by

    我们做的是智慧交通信控平台,需要将实时采集到的交通大数据(信号机灯态、卡口过车、雷达数据等)全部入库,按照时间顺序存储 然后根据原始数据,再计算出一些交通评价指标,存储到数据库,供后续聚合查询和分析统计 前端设备(信号机、雷达、卡口等)上报原始

    2024年02月02日
    浏览(56)
  • MySQL 8.0新特性之INTERSECT和EXCEPT

    最近几年,MySQL 不断致力于兼容 SQL 标准。例如 MySQL 8.0 中的窗口函数、通用表表达式、检查约束等等。 最新发布的 MySQL 8.0.31 继续对 SQL 语句进行了增强,提供了缺失已久的两个集合操作符:INTERSECT 和 EXCEPT。 交集操作符(INTERSECT) INTERSECT 操作符用于返回两个查询结果中的

    2024年02月15日
    浏览(35)
  • 【postgresql 基础入门】插入数据的多种方式 单条,多值,查询结果,插入数据冲突处理,批量导入,多种方式让数据插入更灵活

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 ​ 开源贡献 : toadb开源库 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 入门准备 postgrersql基础架构 快速使用 初始化集群 数据库服务管理 psql客户

    2024年02月08日
    浏览(52)
  • 【postgresql 基础入门】数据表的查询基本知识,条件过滤、单列多列排序、按页浏览数据、数据去重,得到你想要的数据

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 ​ 开源贡献 : toadb开源库 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 入门准备 postgrersql基础架构 快速使用 初始化集群 数据库服务管理 psql客户

    2024年02月07日
    浏览(54)
  • MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式

    在这篇文章,我们保存了数据库的jsonb类型:MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询 这篇文章介绍了模糊查询json/jsonb类型:PostgreSQL 查询json/jsonb是否存在某个片段 在模糊查询json/jsonb之前,我们得拿到正确的json/jsonb片段,比如我们模糊查询好几个连着的键值对,

    2024年02月15日
    浏览(58)
  • 【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询

    在PostgreSQL中,我们可以使用 SELECT DISTINCT 和 SUBSTRING 函数来实现对某个字段进行去重查询。本文将介绍如何使用这两个函数来实现对 resource_version 字段的去重查询。 1. SELECT DISTINCT 语句 SELECT DISTINCT 语句用于从表中选择不重复的记录。如果没有指定列名,则会选择所有列。在本

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包