Grafana:如何使用从另一个 table 检索到的值映射覆盖一个 table 中的值

Grafana: how to overwrite values in one table with value mapping retrieved from another table

我有两个 table,如下所示。 1st table 包含所有状态的描述。如何根据 id 用左侧 table 的 name 覆盖右侧 table 的列 status_id

选项 1:固定映射列表

当status是固定的,数值比较低的时候,我会推荐使用value mapping

确保不要将其应用于整个 table,而是将 override 用于 table 中的字段 status_id

选项 2:映射变量列表

如果状态发生变化或添加了新状态,我会建议如下解决方法(因为我不使用 PostgreSQL,我显示 SQL 来自 [=35= 的语句] BigQuery 标准 SQL,请根据您的用例进行调整):

创建 query variable:使用映射(状态描述)查询 table,并使用连接创建 case 语句的 WHEN ... THEN ... 部分。示例:

SELECT CONCAT('WHEN "', id, '" THEN "', name, '" ')
FROM ID_TABLE

这将为您提供如下行:WHEN "1" THEN "OK"。然后你必须 concat/aggregate 这些行到一个字符串。

然后在最终 table 的查询中使用变量,如本例所示:

SELECT
  CASE status_id
    ${QUERY_VARIABLE}
  ELSE "UNKNOWN STATUS"
  END AS status_id,
  ...
FROM YOUR_DATA_TABLE