美文网首页js css html
postgresql实战—窗口函数

postgresql实战—窗口函数

作者: 熊猫学猿 | 来源:发表于2022-08-03 06:51 被阅读0次

RETURNING返回更新后的数据

INSERT INTO ……RETURNING  */id

UPSERT:INSERT…ON CONFLICT UPDATE

TABLESAMPLE:数据抽样

SELECT … FROM  table_name  TABLESAMPLE sampling_method

sampling_method抽样方法

SYSTEM:随机抽取表上数据块的数据,抽取的记录的随机性不是很好,但返回的数据以数据块为单位,抽样性能很高,适用于抽样效率优先的场景。

BERNOULLI:随机抽取表的数据行,并返回指定百分比数据。基于数据行,所抽样的数据随机性更好,性能相比SYSTEM差很多

聚合函数:string_agg能将结果集某个字段的所有行连接成字符串

array_agg:与string_agg类似,返回的是数组

窗口函数:row_num、rank、lag等

除了内置的窗口函数外,聚合函数、自定义函数后街OVER属性也可作为窗口函数

avg(score) over  (partition by subject)

row_number:对结果集分组后的数据标注行号

rank与row_number相似,主要区别为当组内某行字段值相同时,行号重复并且行号产生间隙。

dense_rank:与rank窗口函数相似,主要区别当组内字段值相同时,行号重复但行号不产生间隙

first_value:取结果集中每个分组的第一个行数据的字段值。很容易查询分组数据的最大值或最小值

last_value:用来取结果集每个分组的最后一行数据的字段值

nth_value:用来取结果集每一个分组的指定行数据的字段值

nth_value(value any,nth integer)

value:指定表的字段

nth:指定结果集分组数据中的第几行,如果不存在则返回空

创建一个Database时会为这个Database创建一个名为public的默认Schema,每个database可以有多个schema。不同的schema可以有多个相同名称的table,index,view等数据库对象

数据目录用来存放持久化数据

OID:所有的数据库对象都由各自的对象标识符进行内部管理,为无符号的4字节整数

数据库的OID存储在pg_database系统表中

数据库中的表、索引、序列等对象的OID存储在pg_class系统表中

在postgresql中最大的逻辑存储单位是表空间,数据库中创建的对象都保存在表空间中

初始化数据库目录时会自动创建pg_default和pg_global两个表空间

pg_global表空间的物理文件位置在数据目录的global目录中,用来保存系统表

pg_default表空间的物理文件位置在数据目录中的base目录

在数据库中创建对象,例如表索引时,首先会为表和索引分配段,在postgresql中,每个表和索引都用一个文件存储。新创建的表文件以表的OID命名,对于大小超出1gb的表数据文件,自动将其切分为多个文件来存储,切分出的文件用OID.<顺序号>来命名。但表文件并不是总是OID.<顺序号>,实际上真正管理表文件的是pg_class的relfilenode字段

在postgresql中,将保存在磁盘中的块称为page,而将内存中的块称为buffer。表和索引称为Relation,行称为Tuple

相关文章

  • postgresql实战—窗口函数

    RETURNING返回更新后的数据 INSERT INTO ……RETURNING */id UPSERT:INS...

  • Postgresql窗口函数(二)

    在上一篇里,主要窗口函数的基本用法。 在这一篇中,我们来看看postgresql除了聚合函数之外还支持哪些窗口函数...

  • Postgresql窗口函数(一)

    聚合函数大家都用过,像sum,min,avg等,一般是和group by配合使用。和聚合函数类似,窗口函数也是计算...

  • 【Postgresql】查询分析——窗口函数

      窗口函数作用于一个数据行集合。窗口是标准的SQL术语,用来描述SQL语句内OVER子句划定的内容,这个内容就是...

  • PostgreSQL 高级SQL(三) 窗口函数

    这一章节我们将了解postgresql 中聚合函数后面的over()子句,可能大家在工作的时候或多或少也涉...

  • PostgreSQL 高级SQL(四) 滑动窗口函数

    上章节我们讲述的窗口函数都属于静态窗口,然而我们很多场景是需要滑动窗口,比如我们需要查看这样的一张报表,这张报表包...

  • PostgreSQL 高级SQL(五) 内建窗口函数

    前面俩个章节我们介绍了窗口函数、滑动窗口函数的概念,接下来我们介绍一下PG支持的原生通用窗口函数,总共11个(9....

  • Hive常用函数

    一、窗口函数 1、窗口函数基础结构 窗口函数 = 分析函数 + over函数分析函数:sum ( )、max ( ...

  • 窗口函数(OVER 子句)

    窗口函数简介 数据准备 问题描述 解答 窗口函数简介 窗口函数是 SQL 中一类特别的函数。 和聚合函数相似,窗口...

  • postgresql函数

    1 若count != 1时,抛出异常并返回 2 循环批量插入或更新数据 3 使用主键-1 4 双层循环

网友评论

    本文标题:postgresql实战—窗口函数

    本文链接:https://www.haomeiwen.com/subject/nglswrtx.html