我有一些金融报价数据,只有第二个分辨率。数据本身按时间顺序排列。
Date Time Bid Ask
06/07/2015 19:09:29 0.7623 0.76262
06/07/2015 19:09:29 0.7623 0.76271
06/07/2015 19:09:29 0.7623 0.76276
我正在寻找一些需要我能够知道亚秒级的分析。所以我最初的想法是“伪造”毫秒。当同一秒内有多个滴答声(数据点)时,我将假设它们在那一秒内均匀分布。因此,由于同一秒内有 3 个刻度,我假设第一个发生在第二个开始时,第二个发生在 0.333,第三个发生在 0.666。
两个问题。
这种方法(伪造毫秒)是存储实际订单的最佳方式吗?
我有相当多的数据要导入,所以我想我会在上传原始数据的两阶段过程中进行操作,然后使用执行毫秒计算的选择插入到我的目标表中。因此,我们将不胜感激对以下查询/方法的任何帮助。
CREATE TEMPORARY TABLE dataload (
id serial
, dt date
, tm time
, bid numeric(10,5)
, ask numeric(10,5)
);
COPY dataload (dt, tm, bid, ask) FROM '/path/to/data.csv' WITH CSV HEADER;
-- INSERT INTO actual_table
SELECT
dt
, tm
, (dt||tm)::timestamp -- Need to hack the milliseconds here
from dataload
group by dt, tm;