KDB列等号回勾不工作

KDB列等号回勾不工作,kdb,q-lang,Kdb,Q Lang,此查询仅从两种应用程序类型获取列数据-隐身和轰炸我们。这个查询工作得很好,直到我不得不将eventtype列隔离为AR事件。数据太多,不能不将其隔离。 我从未见过这么多数据。我看到的每一个q脚本都使用这种格式来过滤列,一个带回勾的等号。 此查询的结果集要小得多,但结果集标题中列的标签要比eventtype小得多 只有一个X。此外,列数据不是AR而是1或0,这可能是真的或假的。 我需要列数据来表示AR,如果它实际上是AR,而不是1或0。此外,如果列标题说的是eventtype而不是x,这会让人放心

此查询仅从两种应用程序类型获取列数据-隐身和轰炸我们。这个查询工作得很好,直到我不得不将eventtype列隔离为AR事件。数据太多,不能不将其隔离。 我从未见过这么多数据。我看到的每一个q脚本都使用这种格式来过滤列,一个带回勾的等号。 此查询的结果集要小得多,但结果集标题中列的标签要比eventtype小得多 只有一个X。此外,列数据不是AR而是1或0,这可能是真的或假的。 我需要列数据来表示AR,如果它实际上是AR,而不是1或0。此外,如果列标题说的是eventtype而不是x,这会让人放心,就像我运行脚本时没有相等的反勾号AR=`AR一样

我正在使用qpad运行查询

raze{[tradedate] 

setdate tradedate;

`rootordid`clordid xasc

select from( 
        (select ltime transacttime, apptype, rootordid, eventtype=`AR, msgcategory from orders where (apptype like "STEALTH US") or apptype like "BOMB US")
         )}each .utl.get_bdts[2017.12.04;2017.12.05]

您看到的使用equals backtack筛选列的脚本正在使用它筛选符号类型的列。您可以通过运行metatablename来判断列的类型。筛选数据还要求where子句中包含此条件。对于上面的示例,如果eventtype是符号类型,则需要将where子句修改为:

where (apptype like "STEALTH US") or apptype like "BOMB US", eventtype=`AR

where eventtype=`AR, (apptype like "STEALTH US") or apptype like "BOMB US"
在这个阶段,输出表中只有AR事件,保持名称eventtype,而不会输出布尔列表

有关select和where子句的更多信息,请查看wiki上的页面

注意:如果eventtype是字符串类型,则可以使用类似AR的eventtype

此外,如果apptype是符号列,则可以将其条件修改为:

where apptype in `$("STEALTH US";"BOMB US")

这应该会比使用like提高性能。

这不会引发错误,但它会打破查询--->与eventtype(如AR)或apptype(如Steave US)或apptype(如EOM US)的顺序不同