摘要:lateral join就是在sql中进行一个foreach循环。有两种不同的方式写lateral join。 如下,是一种简单的形式: SELECT <columns> FROM <table reference>, LATERAL <inner subquery>; 这里的表引用可以是表、也可以 阅读全文
PostgreSQL 高级SQL(五) 内建窗口函数
2020-07-13 15:29 by abce, 1109 阅读, 0 推荐, 收藏, 编辑
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/50292ad0d7eb 前面俩个章节我们介绍了窗口函数、滑动窗口函数的概念,接下来我们介绍一下PG支持的原生通用窗口函数,总共11个(11版本的官网文档地址) 1、row_number 函数row_number函数可以给每 阅读全文
PostgreSQL 高级SQL(四) 滑动窗口函数
2020-07-12 16:27 by abce, 3535 阅读, 0 推荐, 收藏, 编辑
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/184419ee68c5 上章节我们讲述的窗口函数都属于静态窗口,然而我们很多场景是需要滑动窗口,比如我们需要查看这样的一张报表,这张报表包含国家名字,年份,GDP,当前年份与上一年、下一年的GDP均值,也就是说GDP均值这 阅读全文
PostgreSQL 高级SQL(三) 窗口函数
2020-07-12 15:49 by abce, 1137 阅读, 0 推荐, 收藏, 编辑
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/7d0f0e9c821a 这一章节我们将了解postgresql 中聚合函数后面的over()子句,可能大家在工作的时候或多或少也涉及过over()子句的使用。 我们如果要实现一张这样的报表,这张报表有四列,国家名字,年份, 阅读全文
PostgreSQL 高级SQL(二) filter子句
2020-07-12 15:24 by abce, 5755 阅读, 1 推荐, 收藏, 编辑
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/aad5b7265674 本章所用到案例数据来自于上一章节,如果有想使用该数据的读者可以查看上一章节。 这一章节我们想要了解的是PG聚合操作中使用到的filter子句,这个filter子句是ANSI SQL标准中的关键字,并 阅读全文
PostgreSQL 高级SQL(一)分组集
2020-07-12 13:27 by abce, 2277 阅读, 0 推荐, 收藏, 编辑
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/fa620e2d9f1b 作为一名开发者,平时工作中用到最多的可能就是SQL了,简单的SQL我们平时基本都用的差不多了,今天我们介绍一下PG的一些高级SQL,主要是PG SQL的分组集,这些SQL主要用于一些报表任务的开发。 阅读全文
postgresql中的rollup
2020-07-10 15:11 by abce, 2077 阅读, 0 推荐, 收藏, 编辑
摘要:在postgresql中,rollup是group by的子句,提供了多个分组集的简便方式。分组集(grouping set)是用户用于分组的一组列的集合。 与cube语句不同,rollup不会在指定的列上产生所有可能的分组集。 rollup假设输入的列上有层次结构,根据层次结构生成分组集。这就是为 阅读全文
pg中Building Indexes Concurrently
2020-06-29 13:24 by abce, 931 阅读, 0 推荐, 收藏, 编辑
摘要:create index的语法中,看到一个关键字concurrently。以下是对concurrently的解释: 当使用这个选项时,PostgreSQL在构建索引时不加任何阻止对表的并发插入、更新或删除的锁;而标准的索引构建会锁定表上的写操作(而不是读操作),直到完成。 在使用此选项时,有几个注意 阅读全文
PostgreSQL逻辑订阅中的复制状态查看
2020-06-28 23:14 by abce, 3308 阅读, 0 推荐, 收藏, 编辑
摘要:1.订阅端 pg_subscription_rel 查看订阅的每个表的复制状态。是多对多的映射。其中: srrelid:表示表的pg_class.oid srsubstate:状态码;i=初始化,d=正在复制数据,s=已同步,r =准备好(常规复制) srsublsn: s和r状态时的结束LSN。 阅读全文
pg因invalid primary checkpoint record无法启动
2020-06-28 22:13 by abce, 3380 阅读, 0 推荐, 收藏, 编辑
摘要:有个开发环境,因为磁盘空间满了,有人直接将pg_wal下的文件rm了,然后,重启报错 2020-06-28 18:13:59.148 CST [10387]: LOG: database system was shut down at 2020-06-28 18:12:41 CST 2020-06- 阅读全文