Postgresql记录每日统计



晚上好,

我正在尝试创建一个表,该表存储了一系列关于我的应用程序每天的web使用情况的统计数据(琐碎的事情,如no。新用户,总访问量等),我目前正在动态地查询这些数据,但是我现在想要开始存储它们,一方面是为了性能(将聚合查询的负载减少到单个查找),另一方面是为了允许历史分析。

我已经提出了以下表的基本模式(将有比这更多的列,只是给一个想法)

create table web_stats(
    web_stat_id bigserial primary key,
    date_created timestamp not null default now(),
    user_count integer not null,
    new_user_count integer not null
);
comment on table web_stats is 'Table stores statistics on web usage';

现在,我很高兴创建查询来填充表(我使用Quartz调度器每天运行查询)

然而,我不太确定回顾性地填充过去日期表的最佳方法,我应该使用INSERT语句自应用程序上线(大约2年前)以来每天创建一个空白行,然后使用UPDATE来填充空白行吗?或者这能一下子完成吗?有人能提供一些SQL来创建行吗?

如果我的设计假设有任何错误,请告诉我!

我就是这么做的

INSERT INTO web_stats (date_created)
    SELECT DATE('2011-08-20')+x.id
    FROM generate_series(0,521) AS x(id);

其中2011-08-20是应用程序上线的日期,521是从现在到那时的天数

这将创建一个空表,这样我就可以使用date_created字段来填充其他字段,使用UPDATE语句

也许不是最有效的方法,但它是有效的

最新更新