晚上好,
我正在尝试创建一个表,每天为我的应用程序存储一系列关于Web使用情况的统计信息(例如没有新用户,总访问等等),我目前正在查询这些,但是我现在想开始存储它们的部分性能(减少聚合查询的负载到单个查找),部分是为了进行历史分析。
我已经为表格提出了以下基本架构(会有更多的列,只是为了给出一个想法)
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年前),然后使用更新以填充空白行?或者这可以一举完成吗?有人可以提供一些SQL来创建行吗?
如果我的设计假设有任何问题,请告诉我们!
答案 0 :(得分:0)
这就是我最终做到的方式
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语句填充其他字段
也许不是最有效的方法,但它有效