从带有where子句的KDB表计数

loading...


1

我知道count table会告诉你表中有多少行,但是你如何从一个带有where子句的表作为过滤器计算?我尝试了PERIOD = x的计数表,但我收到错误:'PERIOD即使PERIOD是表中的一个字段

3回答

  • -1

    使用qsql过滤,然后计算结果:

    count select from table where PERIOD=x
    

  • 2

    如果你只需要计数,那就去做吧

    exec sum PERIOD=x from table
    

    如果表有很多列,这可能会快得多

    count select from table where PERIOD=x
    

    请注意,这会将布尔值的总和计算为32位int,因此如果您的表有超过10亿行,您可能需要添加一个强制转换:

    exec sum "j"$PERIOD=x from table
    

  • 3

    以下将是最有效的 .

    select count i from table where PERIOD=x
    

    @jomahony解决方案将要求在执行计数之前从磁盘读取所有列(如果表在磁盘上),因此效率低下

loading...

评论

暂时没有评论!