小编max*_*ire的帖子

使用窗口函数结转分区中的第一个非空值

考虑一个记录访问的表

create table visits (
  person varchar(10),
  ts timestamp, 
  somevalue varchar(10) 
)
Run Code Online (Sandbox Code Playgroud)

考虑这个示例数据(时间戳简化为计数器)

ts| person    |  somevalue
-------------------------
1 |  bob      |null
2 |  bob      |null
3 |  jim      |null
4 |  bob      |  A
5 |  bob      | null
6 |  bob      |  B
7 |  jim      |  X
8 |  jim      |  Y
9 |  jim      |  null
Run Code Online (Sandbox Code Playgroud)

我试图将这个人的最后一个非空值传递到他未来的所有访问中,直到该值发生变化(即成为下一个非空值)。

预期结果集如下所示:

ts|  person   | somevalue | carry-forward 
-----------------------------------------------
1 |  bob      |null       |   null
2 |  bob      |null       | …
Run Code Online (Sandbox Code Playgroud)

postgresql window-functions

15
推荐指数
2
解决办法
1万
查看次数

优化大表上的 LATERAL JOIN 查询

我正在使用 Postgres 9.5。我有一个记录来自多个网站的页面点击量的表格。该表包含从 2016 年 1 月 1 日到 2016 年 6 月 30 日的大约 3200 万行。

CREATE TABLE event_pg (
   timestamp_        timestamp without time zone NOT NULL,
   person_id         character(24),
   location_host     varchar(256),
   location_path     varchar(256),
   location_query    varchar(256),
   location_fragment varchar(256)
);
Run Code Online (Sandbox Code Playgroud)

我正在尝试调整一个查询,该查询计算执行给定页面命中序列的人数。该查询旨在回答诸如“有多少人查看了主页,然后访问了帮助站点,然后查看了感谢页面”之类的问题?结果看起来像这样

?????????????????????????????????????????
?  home-page ? help site  ? thankyou    ?
?????????????????????????????????????????
? 10000      ? 9800       ?1500         ?
?????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

请注意数字正在减少,这是有道理的,因为查看主页的 10000 人 9800 继续访问了帮助站点,而其中 1500 人继续点击了感谢页面。

3 步序列的 SQL 使用横向连接,如下所示:

SELECT 
  sum(view_homepage) AS view_homepage,
  sum(use_help) AS use_help,
  sum(thank_you) AS thank_you
FROM ( …
Run Code Online (Sandbox Code Playgroud)

postgresql performance optimization greatest-n-per-group postgresql-performance

9
推荐指数
1
解决办法
8114
查看次数

如何列出所有索引及其类型(BTREE、BRIN、HASH 等...)

我正在查询 Postgresql 9.6.4 中的系统目录

获取表的结果集及其索引很简单,我缺少的是索引类型(BTREE、BRIN 等)。我似乎无法在系统目录中的任何位置找到索引类型。

如何查询目录以获取索引列表及其类型?

postgresql catalogs system-tables postgresql-9.6

6
推荐指数
1
解决办法
2960
查看次数