此查询从两个应用类型中获取列数据 - 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]
答案 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
,而不会输出布尔列表。
有关select
和where
子句的详细信息,请查看Wiki上的Q-SQL页面。
注意:如果eventtype
是字符串类型,那么您可以使用eventtype like "AR"
。
此外,如果apptype
是符号列,您可以将其条件修改为:
where apptype in `$("STEALTH US";"BOMB US")
应该可以提高使用like
的性能。