2014-09-01 2 views
2

KDB에서 여러 테이블을 쿼리하려고합니다. 예를 들어. (쿼리 형식이 잘못 될 수 있도록 내가 SQL에 좋은 아닙니다) KDB에서 SQL 쿼리를 다음 작성하는 방법 :KDB에서 여러 테이블 쿼리

select from table1,table2 where table1.sym=table2.sym and table1.price>table2.price 

나는 예를 들어, 일을 몇 가지 방법을 알고있다. 조인. 그러나 테이블에 도트 표기법을 사용하는 SQL과 동일한 KDB의 기능이 있습니다.

또한 SQL에서 위의 쿼리를 'n'개의 테이블 및 필터 수까지 확장 할 수 있습니다. 복잡한 표현을하지 않고 KDB에서 그렇게 할 수 있습니까?

답변

1

짧은 대답은 '아니오'입니다.

한 번에 1 개의 테이블 만 쿼리 할 수 ​​있습니다. 먼저 조인을해야합니다. 나는 SQL을 잘 모르지만 SQL 엔진이이 작업을 수행 할 수 있도록 후드 아래에서 조인 작업을 수행하고 있다고 확신합니다 (?) 따라서이 작업을 수행하는 방법이 있다면 q 함수를 통해 수행 할 수 있습니다. 조인하기.

당신이 열 벡터를 추출하려면이 같은 테이블에 바로 인덱스 (함수 내부의 점 표기법을 피하기가) 수

table[`sym] 

(테이블을 가정, 벡터로서 SYM 열을 얻을 것 키가되지 않습니다 대야 테이블에서이 작업을 수행 할 때) (NB 조심!)

당신은 예를 들어, where 절에 in 쿼리가 사용할 수 있습니다. 또는 테이블의 길이가 정확히 같으면 새 임시 임시 테이블을 만들 때 사용할 수 있습니다 (단, 여전히 종류의 조인입니다).

보통 ,을 사용하지 않고 , lj, uj

+0

가입을 사용하면됩니다. SQL과 같은 간단한 방법이 있는지 확인하고 싶었습니다. 당신의 답을 보아서, 그것이 유일한 방법 인 것처럼 보입니다. – Rahul