小编ank*_*shg的帖子

使用增量数据有效计算子查询上的聚合函数

我有一个 PostgreSQL 数据库(9.3.6 版),其中包含大量orders. 随着订单被处理、scan_events触发和存储,每个订单有多个事件。扫描事件有一个布尔值,指示在该事件之后是否可以将订单标记为已完成,但complete可以发生多次扫描。然而,一般来说,我真正关心的唯一扫描是第一次扫描和第一次completed扫描。

我想知道在创建后x天内收到第一次扫描的给定创建日期的订单百分比的平均值和标准差。

架构

CREATE TABLE orders (
    id character varying(40) NOT NULL,
    date_created timestamp with time zone NOT NULL
);

ALTER TABLE ONLY orders
    ADD CONSTRAINT orders_pkey PRIMARY KEY (id);

CREATE TABLE scan_events (
    id character varying(100) NOT NULL,
    order_id character varying(40) NOT NULL,
    "time" timestamp with time zone NOT NULL
);

CREATE INDEX scan_events_order_id_idx ON scan_events USING btree (order_id);
Run Code Online (Sandbox Code Playgroud)

所需的计算

对于days_elapsed1 到 14 …

postgresql performance postgresql-9.3 query-performance

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