KDB列等号退回勾选不起作用

时间:2018-01-06 02:13:59

标签: kdb q-lang

此查询从两个应用类型中获取列数据 - STEALTH和BOMB US。此查询工作正常,直到我必须将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]

1 个答案:

答案 0 :(得分:1)

您使用equals backtack过滤列的脚本正在使用它来过滤符号类型的列。您可以通过运行meta tablename来告知列的类型。过滤数据还要求此条件位于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,而不会输出布尔列表。

有关selectwhere子句的详细信息,请查看Wiki上的Q-SQL页面。

注意:如果eventtype是字符串类型,那么您可以使用eventtype like "AR"

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

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

应该可以提高使用like的性能。