考虑一个记录访问的表
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) 我正在使用 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
我正在查询 Postgresql 9.6.4 中的系统目录
获取表的结果集及其索引很简单,我缺少的是索引类型(BTREE、BRIN 等)。我似乎无法在系统目录中的任何位置找到索引类型。
如何查询目录以获取索引列表及其类型?