kdb中的Select语句不工作

kdb中的Select语句不工作,select,kdb,Select,Kdb,我对KDB中给出奇怪结果的select语句有问题。该数据为OPRA数据。i、 e.上市期权交换数据。查询的目的是在10分钟的时间间隔内给出特定的练习价格和练习日期的最后一次询问价格。这张桌子只有一天。因此,该语句如下所示(并给出空结果): 如果我将语句更改为查看是否有适合查询的数据,我会尝试: select last ASK_PRICE,EXERCISE_PRICE by 10 xbar TRADE_TIME.minute from trade where EXERCIS

我对KDB中给出奇怪结果的select语句有问题。该数据为OPRA数据。i、 e.上市期权交换数据。查询的目的是在10分钟的时间间隔内给出特定的
练习价格
练习日期
的最后一次询问价格。这张桌子只有一天。因此,该语句如下所示(并给出空结果):

如果我将语句更改为查看是否有适合查询的数据,我会尝试:

select
    last ASK_PRICE,EXERCISE_PRICE by 10 xbar TRADE_TIME.minute
from
    trade
where
    EXERCISE_PRICE>12 and EXPIRATION_DATE=2014.01.18
我得到以下结果,结果中显示的
练习价格
为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\u PRICE

所以,当我指定>12时,为什么会得到小于12的值,这真的不清楚。当我指定=12时,我什么也得不到


表中的元信息将列
EXERCISE\u PRICE
作为f类型,列
EXERCISE\u DATE
作为d,列
TRADE\u TIME
作为t,列
ASK\u PRICE
作为f

您的查询中似乎存在隐藏的错误。 在where子句中使用相当于运行:

"where EXERCISE_PRICE>(12 and EXPIRATION_DATE=2014.01.18)"
这是因为kdb+从右向左求值-尝试使用
(逗号)分隔where条件

q)select last ASK_PRICE,EXERCISE_PRICE by 10 xbar TRADE_TIME.minute from trade where EXERCISE_PRICE>12 , EXPIRATION_DATE=2014.01.18

谢谢你的解决方案奏效了。我花了很多时间对此挠头。如果答案满足您的问题,请将其标记为已接受(您也可以投票),以帮助其他人找到它。
q)select last ASK_PRICE,EXERCISE_PRICE by 10 xbar TRADE_TIME.minute from trade where EXERCISE_PRICE>12 , EXPIRATION_DATE=2014.01.18