首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加/减和聚合函数的PostgreSQL顺序

加/减和聚合函数的PostgreSQL顺序
EN

Stack Overflow用户
提问于 2014-08-04 21:17:03
回答 2查看 2.1K关注 0票数 1

在PostgreSQL中执行此查询的每一步的顺序是什么?

选择SUM(field1)+SUM(field2)+SUM(field3)-SUM(field4);

据我所知,加减法是按正常的运算顺序进行的--以左向右的顺序排列。我们知道不同的和会发生什么顺序吗?

这是一个长查询的子集(大约40秒用于执行),我认为在执行查询时,字段中的数据可能会实时变化。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-04 21:21:42

我认为,在执行查询时,字段中的数据可能会实时变化。

由于事务隔离,PostgreSQL将确保数据的完整性。

因此,不管运行查询需要多长时间,所有的SUM都将被评估,就好像它们是在同一时刻运行的。

参考文献:

  • http://www.postgresql.org/docs/current/static/transaction-iso.html
票数 2
EN

Stack Overflow用户

发布于 2014-08-05 01:06:34

zerkms的回答切入了你实际需要知道的内容的要点,并且是正确的。在这种简单的情况下,事务隔离将确保您不会受到并发问题的影响(但请注意,它并不是所有并发性的神奇解决方案)。

按照字面意思回答你的问题:它们实际上是交织在一起的。

如果你写:

代码语言:javascript
复制
SELECT SUM(field1)+SUM(field2)+SUM(field3)-SUM(field4) FROM mytable;

然后Pg只读一次mytable。它读取每一行,并将mytable.field1提供给第一个sum,将mytable.field2输入第二个sum,然后对每一行重复。

因此,所有的聚合都是并行完成的(尽管没有使用多个CPU)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25127691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档