如何从 Grafana 的数据库中选择 DISTINCT 记录

Posted

技术标签:

【中文标题】如何从 Grafana 的数据库中选择 DISTINCT 记录【英文标题】:How to select DISTINCT records from the database in Grafana 【发布时间】:2019-06-17 00:48:56 【问题描述】:

我正在使用 Grafana,我想从数据库中选择 DISTINCT 记录。我该怎么做?

查询是:

SELECT reference AS "Reference", reference_url AS "Reference URL" FROM daily_run_vehicle WHERE retries >= 5 GROUP BY reference, reference_url ORDER BY 1;

但是当我尝试时:

SELECT DISTINCT (reference) AS "Reference", reference_url AS "References" FROM daily_run_vehicle WHERE retries >= 5 GROUP BY reference, reference_url ORDER BY 1;

我得到了同样的结果。

我在 Grafana 中使用的data sourcePostgres

更新

我得到的结果如下:

您会看到第三条和第四条记录具有相同的第一列(引用)。我不想这样,我只想显示一个。

应该是这样的:

【问题讨论】:

不相关,但是:distinct不是的函数,它始终适用于选择列表中的所有列。 distinct (a),b,cdistinct a,b,(c) 相同 【参考方案1】:

您将获得 4 个结果,因为 SELECT DISTINCT 返回的行在所有选定字段中的值都不同。所以因为referencereference_url 的组合在第3 行和第4 行中是不同的,所以它们仍然都在DISTINCT 中返回。

要仅对要返回的字段子集执行DISTINCT,请使用DISTINCT ON 告诉它使用哪些字段来检查唯一性,然后是要返回的字段列表:

SELECT DISTINCT ON (reference) reference, reference_url
FROM daily_run_vehicle
WHERE retries >= 5
ORDER BY reference

我已将GROUP BY 删除为DISTINCT ON,其顺序与GROUP BY 1 ORDER BY 1 相同;但是,如果您确实想按这两个字段进行分组,那么您需要一个 DISTINCT ON (reference, reference_url),在这种情况下您实际上希望返回 4 条记录。

【讨论】:

以上是关于如何从 Grafana 的数据库中选择 DISTINCT 记录的主要内容,如果未能解决你的问题,请参考以下文章

如何从模型中获取唯一的选项列表以填充选择框

如何在 grafana 中的 JMeter 线程组之间进行选择?

如何从弹性搜索数据源在 grafana 中制作累积和图?

从 Linq 的列表中选择多个字段

如何从代码在 Grafana 中配置 Cloudflare 应用程序?

Kibana或Grafana,时间序列可视化如何选择?