pg_window

pg_window表存储关于窗口函数的信息。窗口函数通常用于创建复杂的OLAP(在线分析处理)查询。窗口函数被应用到单个查询表达式的范围分区结果集。一个窗口分区是一个查询返回行的子集,由一个特定的OVER()子句定义。典型的窗口函数有rank、dense_rank和row_number。在pg_window中每个条目是pg_proc中一个条目的扩展。pg_proc中的一个条目包含了窗含函数的名称、输入以及输出数据的类型以及其它同普通函数类似的信息。

表 1. pg_catalog.pg_window
名称类型引用描述
winfnoidregprocpg_proc.oid窗口函数在pg_proc中的OID。
winrequireorderboolean 窗口函数要求它的窗口说明有一个ORDER BY 子句。
winallowframeboolean 窗口函数允许它的窗口说明有一个ROWSRANGE帧子句。
winpeercountboolean 计算这个窗口函数要求平级分组行计数,因此Window节点实现必须在需要时“向前看”来保证在其中间状态中该计数可用。
wincountboolean 计算该窗口函数要求分区行计数。
winfuncregprocpg_proc.oid一个计算中间类型窗口函数值的函数在pg_proc中的OID。
winprefuncregprocpg_proc.oid一个计算延迟型窗口函数的部分值的预备窗口函数在pg_proc中的OID。
winpretypeoidpg_type.oid预备窗函数的结果类型在pg_type中OID。
winfinfuncregprocpg_proc.oid一个从分区行计数以及winprefunc结果计算延迟型窗口函数最终值的函数在pg_proc 中的OID。
winkindchar 一个显示该窗口函数在一类相关函数中成员关系的字符:

w - 普通的窗函数

n - NTILE函数

f - FIRST_VALUE函数

l - LAST_VALUE函数

g - LAG函数

d - LEAD函数

上级主题: 系统目录定义