摘要:本文是转载,原文地址是:https://www.jianshu.com/p/184419ee68c5 上章节我们讲述的窗口函数都属于静态窗口,然而我们很多场景是需要滑动窗口,比如我们需要查看这样的一张报表,这张报表包含国家名字,年份,GDP,当前年份与上一年、下一年的GDP均值,也就是说GDP均值这 阅读全文
PostgreSQL 高级SQL(三) 窗口函数
2020-07-12 15:49 by abce, 1210 阅读, 0 推荐, 收藏,
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/7d0f0e9c821a 这一章节我们将了解postgresql 中聚合函数后面的over()子句,可能大家在工作的时候或多或少也涉及过over()子句的使用。 我们如果要实现一张这样的报表,这张报表有四列,国家名字,年份, 阅读全文
PostgreSQL 高级SQL(二) filter子句
2020-07-12 15:24 by abce, 6516 阅读, 1 推荐, 收藏,
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/aad5b7265674 本章所用到案例数据来自于上一章节,如果有想使用该数据的读者可以查看上一章节。 这一章节我们想要了解的是PG聚合操作中使用到的filter子句,这个filter子句是ANSI SQL标准中的关键字,并 阅读全文
PostgreSQL 高级SQL(一)分组集
2020-07-12 13:27 by abce, 2362 阅读, 0 推荐, 收藏,
摘要:本文是转载,原文地址是:https://www.jianshu.com/p/fa620e2d9f1b 作为一名开发者,平时工作中用到最多的可能就是SQL了,简单的SQL我们平时基本都用的差不多了,今天我们介绍一下PG的一些高级SQL,主要是PG SQL的分组集,这些SQL主要用于一些报表任务的开发。 阅读全文
postgresql中的rollup
2020-07-10 15:11 by abce, 2187 阅读, 0 推荐, 收藏,
摘要:在postgresql中,rollup是group by的子句,提供了多个分组集的简便方式。分组集(grouping set)是用户用于分组的一组列的集合。 与cube语句不同,rollup不会在指定的列上产生所有可能的分组集。 rollup假设输入的列上有层次结构,根据层次结构生成分组集。这就是为 阅读全文
pg中Building Indexes Concurrently
2020-06-29 13:24 by abce, 1025 阅读, 0 推荐, 收藏,
摘要:create index的语法中,看到一个关键字concurrently。以下是对concurrently的解释: 当使用这个选项时,PostgreSQL在构建索引时不加任何阻止对表的并发插入、更新或删除的锁;而标准的索引构建会锁定表上的写操作(而不是读操作),直到完成。 在使用此选项时,有几个注意 阅读全文
PostgreSQL逻辑订阅中的复制状态查看
2020-06-28 23:14 by abce, 3735 阅读, 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, 3689 阅读, 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- 阅读全文
Python中Lock和Rlock
2020-06-26 19:15 by abce, 2036 阅读, 0 推荐, 收藏,
摘要:线程是进程中可以调度执行的实体。而且,它是操作系统中可以执行的最小处理单元。简单地说,一个线程就是一个程序中可以独立于其他代码执行的指令序列。为了简单起见,你可以假设线程只是进程的子集! Locks 锁是Python中用于同步的最简单的方式。锁有两种状态:上锁、释放锁。 锁是线程模块中的一个类,有两 阅读全文
PostgreSQL中的heap-only-tuples updates
2020-06-26 13:25 by abce, 1202 阅读, 0 推荐, 收藏,
摘要:由于MVCC的原因,pg并非是直接更新一行记录:它生成重复的记录并提供行的可见性映射信息。 为什么要这么做呢?因为数据库必须考虑一个关键问题:并发性。被更新的行可能还在被之前的事务使用。 为了解决这个问题:rdbms采用了不同技术: ·修改行,并将原来的行版本放置到另外一个地方。比如oracle中的 阅读全文
浙公网安备 33010602011771号