计算唯一标记值的总和



有时似乎必须计算InfluxDB中唯一TAG值的总和。怎么做?

例如,我有多个下载软件的用户。现在我想提取有多少独特的用户下载了它。

以下查询在Grafana中进行了测试,以计算唯一用户,并考虑应用于数据库的时间过滤器。

要做到这一点,我们需要首先应用子查询来计算平均值,这基本上会为每个用户生成一个值为1的表:

SELECT mean("count") FROM "autogen"."downloads" WHERE $timeFilter GROUP BY "username"

这里count是一个整数值,每次用户下载软件时等于1。

在我们可以计算出这些平均值的总和之后,是的,如果你有一个庞大的数据库,这并不便宜,但仍然是一个有效的解决方案:

SELECT SUM(mean) FROM (
SELECT mean("count") FROM "autogen"."downloads" WHERE $timeFilter GROUP BY "username"
)

请继续提出性能最好/更原生的解决方案,这将很好地应用于更大的数据库

最新更新