如何获取测量中的条目数
Posted
技术标签:
【中文标题】如何获取测量中的条目数【英文标题】:How to get the number of entries in a measurement 【发布时间】:2016-06-03 10:35:55 【问题描述】:我是 influxdb 的新手。我刚开始阅读 influx 文档。
我似乎无法让 'select count(*) from table' 等价物在 influx db 中工作。
我有一个名为购物车的度量:
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
【问题讨论】:
【参考方案1】:我想 cartId 是一个标签而不是一个字段值? count()
目前不能用于标签和时间列。因此,如果您的 status
是一个非标记列(一个字段),请对其进行计数。
编辑:
Reference
【讨论】:
正确,InfluxDB functions 只能接受字段作为参数,不能接受标签。【参考方案2】:只要不存在名称为 count
的字段或标签,此方法就有效:
SELECT SUM(count) FROM (SELECT *,count::INTEGER FROM MyMeasurement GROUP BY count FILL(1))
如果它确实为 count
字段使用了其他名称。这首先选择所有条目,包括一个未填充的字段 (count
),然后按未填充的字段分组,它什么都不做,但允许我们使用填充运算符将 1
分配给 count
的每个条目。然后我们在超级查询中选择计数字段的总和。结果应如下所示:
name: MyMeasurement
----------------
time sum
0 47799
这有点笨拙,但它是保证所有条目中不存在始终存在的字段时的所有条目计数的唯一方法。
【讨论】:
以上是关于如何获取测量中的条目数的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Java 中的 LinkedList 获取节点条目参考