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

Sybase数据库如何获取WHERE子句指定各接口的最新指标值

实现方案

方案1:窗口函数实现(适配SQL Server、MySQL 8.0+、PostgreSQL、Oracle等支持窗口函数的数据库)

核心逻辑是按接口名称分组后对时间戳倒序排序,取每个分组内排名第一的最新记录:

WITH RankedMetrics AS (
    SELECT 
        TimeStamp, InfName, t_in_bps, t_out_bps,
        ROW_NUMBER() OVER (PARTITION BY InfName ORDER BY TimeStamp DESC) AS rn
    FROM eMetrics
    WHERE InfName IN ('Gi0/0/2', 'Gi0/0/1', 'Ethernet1/61', 'Ethernet1/17')
)
SELECT TimeStamp, InfName, t_in_bps, t_out_bps
FROM RankedMetrics
WHERE rn = 1;

方案2:子查询关联实现(适配MySQL 5.x等不支持窗口函数的数据库)

先查询每个接口的最新时间戳,再关联原表获取对应时间点的流量字段:

SELECT a.TimeStamp, a.InfName, a.t_in_bps, a.t_out_bps
FROM eMetrics a
INNER JOIN (
    SELECT InfName, MAX(TimeStamp) AS max_ts
    FROM eMetrics
    WHERE InfName IN ('Gi0/0/2', 'Gi0/0/1', 'Ethernet1/61', 'Ethernet1/17')
    GROUP BY InfName
) b ON a.InfName = b.InfName AND a.TimeStamp = b.max_ts
WHERE a.InfName IN ('Gi0/0/2', 'Gi0/0/1', 'Ethernet1/61', 'Ethernet1/17');

优化建议

如果表数据量较大,建议为(InfName, TimeStamp)创建联合索引,可大幅提升查询效率,适配每5分钟执行一次的定时查询场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:39:02