나는 1k 이상 datetime을 포함하는 datetime리스트를 가지고있다. (어떤 이유에서 그것을 date
컬럼으로 부른다). 그때, 어떤 테이블에서 데이터를 선택 열을 기준으로 t
즉 만료 pivotize의 pivotized 테이블에 컬럼으로 해당 date
날짜를 추가하고 모든 위해 함께 pivotization 스티치 할 필요가이 날짜의 각각에 대해 배치 피벗을 최적화하는 방법은 무엇입니까?
adates:2017.10.20T00:02:35.650 2017.10.20T01:57:13.454 ...
날짜. 나는 날짜에 해당하는 pivotization 식별 할 수 있어야합니다 그리고 내가 하나 하나 그것을 할 이유 다음과 같이
는
fPivot:{[adate;accypair]
t1:select from volatilitysurface_smile where date=adate,ccypair=accypair;
mycols:`atm`s10c`s10p`s25c`s25p;
t2:`t xkey 0!exec mycols#(stype!mid) by t:t from t1;
t3:`t xkey select distinct t,tenor,xi,volofvol,delta_type,spread from t1;
result:ej[`t;t2;t3];
:result}
그때마다 날짜 adates
이 함수를 호출 :
raze {[accypair;adate] `date xcols update date:adate from fPivot[adate;accypair] }[`EURCHF] @/: adates;
이것은 대략 90s를 가지고 간다. 예를 들어 더 좋은 방법이 있는지 궁금합니다. 날짜별로 하나의 피벗 팅을 실행 한 다음 모두 함께 스티칭하는 것보다 큰 피벗 팅을 수행하십시오. 내가보기에 큰 문제는 피벗의 일부로 date
속성을 포함 할 명백한 방법이없고 date
을 잃을 수 없다는 것입니다. 그렇지 않으면 결과를 조정할 수 없습니다.
'adates'에서 제공 한 데이터는 datetime이 아닌 timestamp 유형입니다. kdb의 타임 스탬프는'2017.11.28D12 : 55 : 47.354335000'와 같습니다. datetime 유형의'T' 분리 기호와 비교하여 날짜와 시간 사이의'D' 분리 기호에 주목하십시오. –
죄송합니다. 내 잘못을 업데이트하는 중입니다. –