You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让InfluxDB中不同measurement的指标查询结果显示在同一行?

问题:如何让InfluxQL查询的两个指标结果显示在同一行

输入图片描述
输入图片描述

以下是我的查询语句:

SELECT 
  last("used_percent") AS "USED MEMORY", 
  last("uptime_format") AS "UPTIME" 
FROM "mem", "system"

如何才能让这两个指标的查询结果显示在同一行中?


解决方法

mem和system是两个独立的测量(measurement),直接跨两者查询会返回多行结果。要将指标合并到同一行,核心是通过时间维度关联数据,以下是两种实用方法:

方法1:子查询JOIN关联

分别用子查询获取两个测量的最新值,再基于时间字段关联结果:

SELECT 
  mem.last_used AS "USED MEMORY",
  system.last_uptime AS "UPTIME"
FROM (
  SELECT last("used_percent") AS last_used FROM "mem"
) AS mem
JOIN (
  SELECT last("uptime_format") AS last_uptime FROM "system"
) AS system
ON mem.time = system.time

如果两组数据的最新时间不完全匹配,可以添加fill()填充缺失值,或者缩小查询时间范围来对齐。

方法2:按时间分组对齐

通过GROUP BY time()将数据按指定时间窗口分组,取每组内的最新值,再筛选出最新的一组结果:

SELECT 
  last("mem.used_percent") AS "USED MEMORY",
  last("system.uptime_format") AS "UPTIME"
FROM "mem", "system"
GROUP BY time(1m)
ORDER BY time DESC LIMIT 1

这里的1m是时间窗口,可根据你的数据采集频率调整为10s、5m等合适的值。


内容的提问来源于stack exchange,提问作者Louis Jarrier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:55:25