【问题标题】:grouping query for grafana 3 bar chartgrafana 3条形图的分组查询
【发布时间】:2023-01-31 07:38:03
【问题描述】:

所以我是 Grafana 的新手,我遇到了如何从我的 postgres 数据库中对我的查询进行分组以在条形图中显示我想要的方式的问题。

这是我使用 pgadmin 获取数据和结果的查询:

这是粘贴到 Grafana 时的查询结果:

现在这是我想通过查询实现的结果: 我希望 x 轴按年份将 GROUP_A、GROUP_B、GROUP_C 和 GROUP_D 条组合在一起,并用不同颜色的列代表每个不同的设备。

这是我想要实现的教程中使用的代码,但我在复制它时遇到问题:

SELECT [Month] as [Month], [2011], [2012], [2013], [2014]
FROM (
SELECT
    DATEPART(Year, ModifiedDate) AS [Year],
    STR(DATEPART(Month, ModifiedDate)) AS [Month]
FROM Sales.SalesOrderDetail a
)AS SourceTable
PIVOT
(
COUNT(Year)
FOR [Year] IN ([2011], [2012], [2013], [2014])
)AS PivotTable
ORDER BY Month

任何帮助是极大的赞赏。

【问题讨论】:

  • 你解决了吗?我遇到了类似的问题,所以任何解决方案将不胜感激:D
  • 我没有解决它,我继续前进

标签: postgresql grafana


【解决方案1】:

不敢相信这有多难弄清楚,但我想我解决了这个问题。

按每个组(GROUP_A、GROUP_B、GROUP_C 等)对列进行分组的解决方案是两个转换的组合:Partition by values 转换,然后是 Join by field 转换。

你会在group_name字段上输入Partition by values,然后在device_type字段上输入Join by field。

根据我(可能有缺陷)的理解,Partition by values 将数据集分成“系列”,一个系列代表所选分区字段的每个值。这些几乎就像单独的表(使用 SQL 类比),每个表都有与分区字段的每个不同值匹配的行,即一个“表”/系列,其中的行用于 GROUP_A,一个用于 GROUP_B,等等。

我的测试数据有“环境”键,有 4 个不同的值,所以我的数据被分成 4 个“系列”:

就像 SQL 类比表一样,如果我想一起显示所有这些表中的数据,我会通过所有公共的列将它们一起 JOIN,在您的情况下为 device_type 字段。我的类似 device_type 字段被称为 metric:

将它们放在一起并与条形图 > 方向 = 水平一起显示:我的 http_*entries 是您的 group_name 条目,我的“planetscale,rds”等标签是您的 device_type 条目。

这些不是实际的 Planetscale 与 RDS 数字,只是测试数据

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 2013-12-01
    • 1970-01-01
    • 2011-03-01
    • 2012-11-09
    • 2019-09-23
    • 2021-07-24
    相关资源
    最近更新 更多