【问题标题】: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

【问题讨论】:

    标签: influxdb


    【解决方案1】:

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

    编辑:

    Reference

    【讨论】:

    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2013-07-20
      • 2019-10-20
      • 2011-11-09
      相关资源
      最近更新 更多