WinCC 提供了数据归档的功能,并且还可以通过多种方式将归档数据查询出来进行呈现。...但是在使用 WinCC OnlineTrendControl 以OnlineTableControl 时,对于数据的过滤查询只能根据时间进行。...这就给这种希望根据批次名称进行批次数据查询的应用带来了一些不便。为了解决这个问题,本文将介绍如何能够通过生产批次名称来进行批次数据过滤查询的组态编程方法。...那么也就意味着只要能够在 WinCC 中归档批次名称的同时,将该批次的开始生产时间以及结束生产时间与批次名称一同进行归档。...当选择了需要查询的批次名称的时候也就能够获取到该批次的生产起始以及结束时间,再根据这两个时间即可过滤查询出该批次生 产过程中归档的所有历史数据。
PostgreSQL 基础教程 首先,您将学习如何使用基本数据查询技术从单个表中查询数据,包括查询数据、对结果集进行排序和过滤行。然后,您将了解高级查询,例如连接多个表、使用集合操作以及构造子查询。...去重查询 为您提供一个删除结果集中重复行的子句。 第 2 节. 过滤数据 主题 描述 WHERE 根据指定条件过滤行。 LIMIT 获取查询生成的行的子集。 FETCH 限制查询返回的行数。...连接多个表 主题 描述 连接 向您展示 PostgreSQL 中连接的简要概述。 表别名 描述如何在查询中使用表别名。 内连接 从一个表中选择在其他表中具有相应行的行。...左连接 从一个表中选择行,这些行在其他表中可能有也可能没有对应的行。 自连接 通过将表与自身进行比较来将表与其自身连接。 完全外连接 使用完全连接查找一个表中在另一个表中没有匹配行的行。...子查询 主题 描述 子查询 编写一个嵌套在另一个查询中的查询。 ANY 通过将某个值与子查询返回的一组值进行比较来检索数据。 ALL 通过将值与子查询返回的值列表进行比较来查询数据。
您可以通过将其记录在PostgreSQL数据库中来决定练习数据库技能,而不是将此信息保存在物理分类帐中。...WHERE column_name comparison_operator value WHERE子句中的比较运算符定义应如何将指定列与值进行比较。...JOIN子句可用于组合查询结果中两个或多个表的行。它通过在表之间查找相关列并在输出中适当地对结果进行排序来实现此目的。...但是,有些情况下,外部查询必须首先读取表中的每一行,并将这些值与子查询返回的数据进行比较,以便返回所需的数据。在这种情况下,子查询称为相关子查询。 以下语句是相关子查询的示例。...然后,它将该结果集中的每一行与内部查询的结果进行比较,后者确定具有相同鞋号的个人的平均获胜次数。
这种方式相对来说比较强大,关系代数的操作符都可以用它来表述,但是有些关系的操作是关系代数表示不了的,只能用DataLog来表述,比如:递归查询。...因为一个较短的SQL可以完成千百行C或者Java的工作,特别是在访问一些层次化的数据模型(例如:Oracle的层次查询,一条语句可以把层次结构输出出来;PostgreSQL的WITH-RECURSIVE...三、PostgreSQL查询处理流程 从用户在客户端发送一条SQL语句,经过网络传输给PostgreSQL进行处理、执行,其流程经过如下几个步骤: 1、语法分析 SQL字符串可以认为是一个大的正则式,语法分析来检查这个大的...这两种都可以统称为Sub-Select,而优化器在这一步会进行Sub-Select Elimination:将子查询上拉到顶层查询,消除子查询。...例如对于查询: select * from r, p, q where r1 = (p1+q1) and r2=q2; 通常我们可能认为r和q在r2=q2的条件进行连接,然后与p在r1 = (p1+q1
这是因为WHERE子句只接受结果为true的值,它会过滤掉结果为false或unknown的值。这样,它就会把对应的行从结果中去掉。...此示例很好地总结了filter子句的作用:它是聚合函数的后缀,可以在进行聚合之前根据特定条件,过滤掉相应的行。pivot技术是filter子句最常见的用例。...但是,SQLite遵守与PostgreSQL相同的语法来实现此功能0。该标准提供了对merge语句的支持。 与PostgreSQL不同,SQLite在以下语句中存在问题。...你可以通过向查询中添加子句来解决,例如where true。...派生的数据库表(如Select语句返回的查询结果集)中的列名可以通过SELECT语句、FROM语句或WITH语句来进行改变 2:据我所知,也许可以通过可更新视图或派生的列来模拟该功能。
查询路由意味着获取查询(作为查询的一部分),并让存储相关分片的RDBMS节点处理查询,而不是收集或重新整理中间结果,当查询通过分发列进行过滤和合并时,这是可能的。...查询路由使Citus能够为多租户(SaaS)应用程序大规模支持底层PostgreSQL服务器的所有SQL功能,这些应用程序通常按租户ID进行过滤。...与顺序执行相比,跨分布式表中所有分片的并行,分布式SELECT允许您在短时间内查询大量数据,这意味着您可以构建具有一致响应时间的应用程序,即使您的数据和客户数量通过扩展数据库来增长。...如果没有联接,则需要在每一行中存储大量冗余信息,这将大大增加存储,扫描表或将其保留在内存中所需的硬件数量。通过联接,您可以存储紧凑的不透明ID并进行高级过滤,而不必读取所有数据。...下面我们根据公开提供的文档对一些流行的分布式数据库进行比较。 ? 让我们的力量结合起来…… 与在分布式数据库中拥有超级功能相比,更重要的是能够组合数据库超级功能来解决复杂的用例。
用户/系统通过 SQL(结构化查询语言对数据库进行查询。...(30), id_number VARCHAR(18) UNIQUE ); 参照完整性是指数据库不允许引用不存在的实体,数据库的表与其他表之间往往存在一些关联,可以通过外键约束来保障其完整性。...命令行交互 PostgreSQL 提供了强大的命令行交互功能,我们可以使用 \ + 关键词来进行操作。我们可以通过查阅文档或 \? 与 help 命令来查看命令详情与帮助信息。...SELECT 命令来对表进行查询,最常用的查看全表命令为 --- 查看表的全部数据 SELECT * FROM person; --- 查询数据(特定字段) SELECT first_name, last_name...FROM person; 可以通过 WHERE 关键字来进行条件查询、以及多个条件的组合查询: --- 查询数据(条件筛查,WHERE | AND | OR | 比较 > | >= | < | <=
执行计划是根据查询算子制定的。每个算子将一个或多个输入集转换成中间结果集。例如SeqScan算子将输入集(物理表)转换为结果集,过滤掉任何不符合查询约束的行。...查看这个计划,PostgreSQL 首先通过对整个recalls表执行顺序扫描(Seq Scan)来产生中间结果集。...PostgreSQL 使用两种不同的排序策略:内存排序和磁盘排序。您可以通过调整sort_mem运行时参数的值来调整 PostgreSQL 实例。...一些查询运算符要求对其输入集进行排序。例如,Unique算子(我们稍后会看到)通过在读取已排序的输入集时检测重复值来消除行。...Unique通过将每一行的唯一列与前一行进行比较来工作。如果值相同,则从结果集中删除重复项。Unique算子仅删除行,不会删除列,也不会更改结果集的顺序。
Greenplum数据库和PostgreSQL的主要区别在于: 在基于Postgres查询规划器的常规查询规划器之外,可以利用GPORCA进行查询规划。...Master会协调与系统中其他称为Segment的数据库实例一起工作,Segment负责存储和处理数据。 Figure 1....Greenplum数据库的最终用户与Greenplum数据库(通过Master)交互时,会觉得他们是在与一个典型的PostgreSQL数据库交互。...分发并行查询计划 image 某些查询可能只访问单个Segment上的数据,例如单行的INSERT, UPDATE, DELETE, 或者 SELECT操作或者以表分布键列过滤的查询。...nested loop join 嵌套循环连接,是比较通用的连接方式,分为内外表,每扫描外表的一行数据都要在内表中查找与之相匹配的行,没有索引的复杂度是O(N*M),这样的复杂度对于大数据集是非常劣势的
示例:为其他企业托管店面的网站,例如数字营销解决方案或销售自动化工具。 特征:与单个租户相关的查询,而不是跨租户加入信息。...根据 join 的频率和 join 行的大小,选择一个维度来共同定位。 将一些维度表更改为引用表。 如果维度表不能与事实表共存,您可以通过将维度表的副本以引用表的形式分发到所有节点来提高查询性能。...这意味着,如果同一租户的数据始终位于单个 PostgreSQL 节点上,那么我们的原始查询可以由该节点通过对 tenant_id 和 page_id 执行 join 来一次性回答。...共置意味着更好的功能支持 Citus 通过共置解锁的功能的完整列表如下: 对一组位于同一位置的分片上的查询的完整 SQL 支持 多语句事务支持对一组位于同一位置的分片进行修改 通过 INSERT..SELECT...查询性能 Citus 通过将传入查询分解为多个在工作分片上并行运行的片段查询(“任务”)来并行化传入查询。
此外,ROLLBACK TO是唯一的途径来重新控制一个由于错误被系统置为中断状态的事务块,而不是完全回滚它并重新启动。 3.5. 窗口函数 一个窗口函数在一系列与当前行有某种关联的表行上执行一种计算。...下面是一个例子用于展示如何将每一个员工的薪水与他/她所在部门的平均薪水进行比较: SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY...对于每一行,窗口函数都会在当前行同一分区的行上进行计算。 我们可以通过OVER上的ORDER BY控制窗口函数处理行的顺序(窗口的ORDER BY并不一定要符合行输出的顺序。)。...一个窗口函数所考虑的行属于那些通过查询的FROM子句产生并通过WHERE、GROUP BY、HAVING过滤的“虚拟表”。例如,一个由于不满足WHERE条件被删除的行是不会被任何窗口函数所见的。...如果需要在窗口计算执行后进行过滤或者分组,我们可以使用子查询。
SELECT 在关系操作中被称为投影(Projection),看下面的示意图应该就比较好理解了。 ? 除了 SELECT 之外,还有一些常用的 SQL 子句。...WHERE 用于指定数据过滤的条件,在关系运算中被称为选择(Selection),示意图如下: ? ORDER BY 用于对查询的结果进行排序,示意图如下: ?...总之,SQL 可以完成各种数据操作,例如过滤、分组、排序、限定数量等;所有这些操作的对象都是关系表,结果也是关系表。 ? 在这些关系操作中,有一个比较特殊,就是分组。...因此,SQL 中的集合也被称为多重集合(multiset);多重集合与集合理论中的集合都是无序的,但是 SQL 可以通过 ORDER BY 子句对查询结果进行排序。...很多时候集合操作都可以通过连接查询来实现,例如: SELECT department_id FROM departments UNION SELECT department_id FROM employees
SELECT 语句 —— 根据选择查询的结果插入行。这是一种方便的填充表的方法,并且还允许使用 ON CONFLICT 子句进行“更新插入(upserts)”,这是进行分布式汇总的最简单方法。...SELECT。它从工作节点中选择结果,并将数据拉到协调节点。协调器将行重定向回适当的分片。因为所有数据都必须通过单个节点,所以这种方法效率不高。...首先,当您重复执行聚合查询时,它必须遍历每个相关行并重新计算整个数据集的结果。如果您使用此查询来呈现仪表板,则将聚合结果保存在每日页面浏览量表中并查询该表会更快。...每天运行一次查询意味着不需要更新汇总表行,因为新一天的数据不会影响之前的行。 当处理迟到的数据或每天多次运行汇总查询时,情况会发生变化。如果任何新行与汇总表中已有的天数匹配,则匹配计数应增加。...这是对象关系映射器 (ORM) 有时使用的一种技术,用于安全地: 加载行 在应用程序代码中进行计算 根据计算更新行 选择要更新的行会对它们设置写锁定,以防止其他进程导致“丢失更新(lost update
SELECT 在关系操作中被称为投影(Projection),看下面的示意图应该就比较好理解了。 除了 SELECT 之外,还有一些常用的 SQL 子句。...WHERE 用于指定数据过滤的条件,在关系运算中被称为选择(Selection),示意图如下: ORDER BY 用于对查询的结果进行排序,示意图如下: 总之,SQL 可以完成各种数据操作,例如过滤...在这些关系操作中,有一个比较特殊,就是分组。 04 GROUP BY 分组( GROUP BY)操作和其他的关系操作不同,因为它改变了关系的结构。...因此,SQL 中的集合也被称为多重集合(multiset);多重集合与集合理论中的集合都是无序的,但是 SQL 可以通过 ORDER BY 子句对查询结果进行排序。...很多时候集合操作都可以通过连接查询来实现,例如: SELECT department_id FROM departments UNION SELECT department_id FROM employees
领取专属 10元无门槛券
手把手带您无忧上云