sybase - Sybase,where 子句中每个接口的最后一个值
问题描述
每 5 分钟将数据写入数据库,我需要获取 的最后一个值t_in_bps
,t_out_bps
对于每个InfName
,此查询将每 5 分钟运行一次
我试过 top 4 ,我得到了四个接口(InfName),但不是每个接口的最新值
SELECT TOP 4 TimeStamp, InfName, t_in_bps, t_out_bps
FROM eMetrics
WHERE InfName in ('Gi0/0/2', 'Gi0/0/1', 'Ethernet1/61', 'Ethernet1/17')
我试过了top 4 max(TimeStamp)
,我只有一个界面。
帮助!
解决方案
假设TimeStamp
4 个感兴趣的记录是相同的(或至少在几秒钟内),并且之前的TimeStamp
值是几分钟前的,你可以用一个order by
子句来解决:
SELECT TOP 4 TimeStamp, InfName, t_in_bps, t_out_bps
FROM eMetrics
WHERE InfName in ('Gi0/0/2', 'Gi0/0/1', 'Ethernet1/61', 'Ethernet1/17')
order by TimeStamp desc
否则,正常的解决方案是删除top 4
并使用相关的子查询,例如:
SELECT e1.TimeStamp, e1.InfName, e1.t_in_bps, e1.t_out_bps
FROM eMetrics e1
WHERE e1.InfName in ('Gi0/0/2', 'Gi0/0/1', 'Ethernet1/61', 'Ethernet1/17')
and e1.TimeStamp = (select max(e2.TimeStamp)
from eMetrics e2
where e2.InfName = e1.InfName)
推荐阅读
- groovy - soapUI 中的 Groovy 脚本:条件为真时无法执行条件语句
- qt - 来自 C++ 模型的 QML MapPolygon
- r - 列数据的多样性指数
- c# - 如何从 X509Certificate2 中获取组织名称?
- python - 根据列值选择用户 - 熊猫数据框
- amazon-web-services - AWS Elastic Beanstalk 的私有静态 URL
- angular - Angular - 创建新接口时无法编译,出现不可分配的错误
- javascript - AngularJS - 使用 UnderScoreJs 对表列进行排序
- appium - 如何使用 xpath 返回页面上所有元素的列表
- javascript - 如何用承诺关闭文件句柄?