【发布时间】:2016-09-20 15:43:28
【问题描述】:
我在 KDB 中的 select 语句给出了奇怪的结果时遇到了问题。数据是 OPRA 数据。即列出的选项交换数据。查询的目的是以 10 分钟为间隔给出特定 EXERCISE_PRICE 和 EXERCISE_DATE 的最后一个 ASK_PRICE。该表只有 1 天。所以语句看起来像(并给出空结果):
select
last ASK_PRICE by 10 xbar TRADE_TIME.minute
from
trade
where
EXERCISE_PRICE=12 and EXPIRATION_DATE=2014.01.18
如果我更改语句以查看是否有可能适合查询的数据,我尝试了:
select
last ASK_PRICE,EXERCISE_PRICE by 10 xbar TRADE_TIME.minute
from
trade
where
EXERCISE_PRICE>12 and EXPIRATION_DATE=2014.01.18
我得到以下结果,EXERCISE_PRICE 在结果中显示为 12,但值也小于 12。结果被截断:
minute ASK_PRICE EXERCISE_PRICE (the table header)
09:50 6.2 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 11 11 12 12 12 12 13 14 14 14 14 14 24 24 24 24 24 24 24 24 17 17 17 10 10
请注意,结果中的ASK_PRICE 为6.2,其余值为EXERCISE_PRICE。也就是说,时间段 09:50 的所有 EXERCISE_PRICE 值。
所以真的不清楚为什么当我指定 >12 时我得到低于 12 的值。当我指定 = 12 时,我什么也得不到。
表上的元信息将EXERCISE_PRICE列为类型f,EXERCISE_DATE列为d,TRADE_TIME列为t,ASK_PRICE列为f。
【问题讨论】: