首页 > 解决方案 > 计算唯一标签值的总和

问题描述

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

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

标签: grafanainfluxdb

解决方案


在 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"
)

请继续并提出最佳性能/更原生的解决方案,这将很适合申请更大的数据库


推荐阅读