如何计算 Influx 中某个值出现的次数? (通过...分组?)

How do I count the number of occurances of a value in Influx? (GROUP BY?)

我在 InfluxDB 中有一堆关于 "articles" 的数据,每个 article 都有一个与之关联的 domain 值。

我希望按域显示文章数。我可能是错的,但我觉得 SQL 中我想要的是这样的:

select domain, count(*) from articles group by domain;

但是,这给了我这个错误:

ERR: mixing aggregate and non-aggregate queries is not supported

我做错了什么?

您需要使用正确的InfluxDB syntax for GROUP BY(标签不包含在SELECT子句中):

select count(*) from articles group by domain;

我怀疑你的 domain 是一个字段而不是标签。您只能按标签(和时间间隔)分组。 如果您的 domain 是一个标签,那么查询就没有问题。尽管选择标签可能是多余的,因为它已作为组标识符包含在结果中。

我认为 Jan Garaj 的评论有些不准确。

我不知道为什么你没有收到无法按 domain 分组的错误,如果它实际上是一个字段。但也许查询解析器只是首先抱怨您有一个字段实际上没有以任何方式聚合。

编辑:但要解决您的问题,您处理问题的方式是正确的。