如何获取测量中的条目数

zam*_*bro 7 influxdb

我是涌入的新手.我刚刚开始阅读涌入文档.

我似乎无法获得相当于'表的选择计数(*)以在涌入数据库中工作.

我有一个名为cart的测量:

time                status  cartid          
1456116106077429261 0       A
1456116106090573178 0       B
1456116106095765618 0       C
1456116106101532429 0       D
Run Code Online (Sandbox Code Playgroud)

但是当我尝试做的时候

select count(cartid) from cart
Run Code Online (Sandbox Code Playgroud)

我收到了错误

ERR: statement must have at least one field in select clause
Run Code Online (Sandbox Code Playgroud)

poo*_*zko 8

我想cartId是标签而不是字段值?count()目前不能用于标签和时间列.因此,如果您status是非标记列(字段),请对其进行计数.

编辑:

参考

  • 正确的,[InfluxDB函数](https://docs.influxdata.com/influxdb/v0.10/query_language/functions/#count)只能接受字段作为参数,而不是标签. (3认同)

wiz*_*z94 6

只要不存在具有该名称的字段或标签,此操作就有效count

SELECT SUM(count) FROM (SELECT *,count::INTEGER FROM MyMeasurement GROUP BY count FILL(1))
Run Code Online (Sandbox Code Playgroud)

如果它确实使用该字段的其他名称count。其工作原理是首先选择包括未填充字段 ( count) 的所有条目,然后按未填充字段进行分组,该字段不执行任何操作,但允许我们使用填充运算符来分配1给每个条目count。然后我们在超级查询中选择计数字段的总和。结果应该是这样的:

name: MyMeasurement
----------------
time    sum
0       47799
Run Code Online (Sandbox Code Playgroud)

这有点hacky,但当不存在始终存在于所有条目中的字段时,这是保证所有条目计数的唯一方法。