2016-09-20 3 views
3

이상한 결과를주는 KDB의 select 문에 문제점이 있습니다. 데이터는 OPRA 데이터입니다. 즉, 나열된 옵션이 데이터를 교환합니다. 쿼리의 개체는 특정 EXERCISE_PRICEEXERCISE_DATE의 마지막 ASK_PRICE를 10 분 간격으로 제공하는 것입니다. 이 테이블에는 1 일 밖에 없습니다. 그래서 문처럼 보인다 (및 제공 빈 결과) : 나는 쿼리에 맞게 수있는 데이터가 있는지처럼 보이도록 문을 변경하는 경우kdb의 Select 문이 작동하지 않습니다.

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 

I을 결과에 나타나는 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를 지정하면 아무 것도 얻을 수 없습니다.

테이블 메타 정보 타입 F, D와 같은 열 EXERCISE_DATE 열 t로서 TRADE_TIME 및 F와 같은 열 ASK_PRICEEXERCISE_PRICE을 준다.

답변

4

검색어에 숨겨진 오류가있는 것 같습니다. - 당신의 조건을 분리하는 , (쉼표)를 사용하여 시도

"where EXERCISE_PRICE>(12 and EXPIRATION_DATE=2014.01.18)" 

이 산업 은행 + 오른쪽에서 왼쪽으로 평가하기 때문이다 : 당신이 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 
+0

감사합니다. 솔루션이 효과적이었습니다. 나는 많은 시간을 내 머리에 찰과상을 보냈다. – patrick

+2

답변이 귀하의 질문에 만족하면 다른 사람들이 쉽게 찾을 수 있도록 허용 한 것으로 표시하십시오 (또한 upvote 할 수도 있음). – mkierc

관련 문제