分组列空着,是数据缺失还是这一组没有使用它?
PostgreSQL 17第7.2.4节把多组分组分别计算。ROLLUP的前缀、CUBE的子集和分组集合去重,决定了结果行的来源,不能只看显示出来的值。
本站资讯
新潮服务网为您提供最新最全的科技新闻、行业动态和深度分析,聚焦前沿技术与发展趋势。
PostgreSQL 17第7.2.4节把多组分组分别计算。ROLLUP的前缀、CUBE的子集和分组集合去重,决定了结果行的来源,不能只看显示出来的值。
PostgreSQL 17把结果排序、访问路径和环路识别分为不同信息。SEARCH生成可供排序的列,CYCLE记录路径与标记;整行去重则未必能认出带有不同深度值的同一节点。
PostgreSQL 17将数组声明中的大小、具体数组值的形状和下标范围分别说明。同一元素类型可以有不同维数的数组,但多维值内部仍有匹配要求;某一维的长度也不是全部元素总数。
Range Types文档把没有边界和没有任何点明确区分。省略一侧边界会扩大范围,empty则没有元素;方括号、圆括号及元素类型自身的infinity值还各有具体含义。
物化视图以类似表的形式保存结果,同时保留生成结果的查询。PostgreSQL 17说明,读取返回的是已保存的数据,重新填充才使用相应规则,因此数据是否当前需要另行说明。
PostgreSQL 17把LATERAL解释为横向引用与逐来源行求值。表函数关键字可省略、LEFT JOIN保留无子结果的来源行,则是同节需要一起保留的条件。
PostgreSQL 17教程的窗口avg示例保留每位员工一行,再附上同部门平均。该例只有PARTITION BY,没有窗口ORDER BY,范围不能省略。
PostgreSQL 17中的WHERE、聚合FILTER和HAVING作用于不同范围。读一个含多项统计的结果时,先把共同输入、单项输入和最终保留的组分开,才能判断计数与最大值为什么看似不相配。
多次引用 CTE 时,合并到外层查询可能让筛选条件参与优化,也可能重复执行昂贵计算。理解一次查询内的复用与条件下推,才能看清 NOT MATERIALIZED 的取舍。
PostgreSQL 17默认不在唯一性比较中把两个NULL视为相等。UNIQUE、NULLS NOT DISTINCT与NOT NULL分别改变不同条件,不能只凭“唯一”二字推定空值规则。