使用 InfluxQL 计算一个区间内具有相同值的点(行)?

Using InfluxQL to count points (rows) with same value within an interval?

我正在尝试利用我对 InfluxQL 的适度 SQL 知识,但我遗漏了一些关于时间序列数据库性质的信息。

用例

当问题更新时,我从我们的问题跟踪器中写下测量结果:

issue_updated,project=facebook,ticket=fb1,assignee=coolman status="todo"

问题

给定这 returns 行问题状态:

SELECT status 
FROM  "issue_updated" 

如果这是 SQL (fiddle),我会使用 COUNT(然后添加 WHERE time > NOW() - 1Y GROUP BY time(5m))。然而,下面给出了 不支持混合聚合和非聚合查询

SELECT status, count(status) as 'Count'
FROM "issue_updated" 

有人可以在这里指导一下吗? ta

听起来您正在寻找的是按当前不支持的字段值进行分组的功能。

据我所知,如果您稍微修改架构,应该可以实现您想要的效果。而不是

issue_updated,project=facebook,ticket=fb1,assignee=coolman status="todo"

issue_updated,project=facebook,ticket=fb1,assignee=coolman,status=todo value=1

然后

SELECT count(value) FROM "issue_updated" WHERE time > now() - 52w GROUP BY status
name: issue_updated
tags: status=other
time            count
----            -----
1449523659065350722 1

name: issue_updated
tags: status=todo
time            count
----            -----
1449523659065350722 2

应该可以。