从带有where子句的KDB表计数

时间:2017-08-18 17:55:41

标签: kdb

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

3 个答案:

答案 0 :(得分:3)

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

  count select from table where PERIOD=x 

答案 1 :(得分:2)

如果您只需要计数,请执行

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <input type="text" placeholder="press the up or down key"/>
  </body>

</html>

如果表有很多列,这可能比

快得多
exec sum PERIOD=x from table

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

count select from table where PERIOD=x

答案 2 :(得分:-1)

以下将是最有效的。

select count i from table where PERIOD=x

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