如何获取测量中的条目数
How to get the number of entries in a measurement
我是 influxdb 的新手。我刚开始阅读 influx 文档。
我似乎无法获得 'select count(*) from table' 的等价物在 influx 数据库中工作。
我有一个名为购物车的测量值:
time status cartid
1456116106077429261 0 A
1456116106090573178 0 B
1456116106095765618 0 C
1456116106101532429 0 D
但是当我尝试做的时候
select count(cartid) from cart
我收到错误
ERR: statement must have at least one field in select clause
我想 cartId 是一个标签而不是一个字段值? count()
目前不能用于标签和时间列。因此,如果您的 status
是一个非标记列(一个字段),请计算它。
编辑:
只要不存在名称为 count
:
的字段或标签,此方法就有效
SELECT SUM(count) FROM (SELECT *,count::INTEGER FROM MyMeasurement GROUP BY count FILL(1))
如果它确实为 count
字段使用其他名称。这通过首先 selecting 所有条目包括未填充的字段 (count
) 然后按未填充的字段分组来工作,这除了允许我们使用填充运算符将 1
分配给每个条目对于 count
。然后我们 select 超级查询中的计数字段的总和。结果应如下所示:
name: MyMeasurement
----------------
time sum
0 47799
这有点老套,但这是保证 all 条目计数的唯一方法,当所有条目中始终存在的字段不存在时。
我是 influxdb 的新手。我刚开始阅读 influx 文档。
我似乎无法获得 'select count(*) from table' 的等价物在 influx 数据库中工作。
我有一个名为购物车的测量值:
time status cartid
1456116106077429261 0 A
1456116106090573178 0 B
1456116106095765618 0 C
1456116106101532429 0 D
但是当我尝试做的时候
select count(cartid) from cart
我收到错误
ERR: statement must have at least one field in select clause
我想 cartId 是一个标签而不是一个字段值? count()
目前不能用于标签和时间列。因此,如果您的 status
是一个非标记列(一个字段),请计算它。
编辑:
只要不存在名称为 count
:
SELECT SUM(count) FROM (SELECT *,count::INTEGER FROM MyMeasurement GROUP BY count FILL(1))
如果它确实为 count
字段使用其他名称。这通过首先 selecting 所有条目包括未填充的字段 (count
) 然后按未填充的字段分组来工作,这除了允许我们使用填充运算符将 1
分配给每个条目对于 count
。然后我们 select 超级查询中的计数字段的总和。结果应如下所示:
name: MyMeasurement
----------------
time sum
0 47799
这有点老套,但这是保证 all 条目计数的唯一方法,当所有条目中始终存在的字段不存在时。