sql - 我只需要找到最大 LAG_MIN 的 DB_NAME
问题描述
SELECT DISTINCT a.collection_timestamp,
round((a.value / 60),0) lag_min,
substr(b.target_name,1,instr(b.target_name,'.',1,1)- 1) db_name
FROM sysman.mgmt_metrics_raw a,
sysman.mgmt$agents_monitoring_targets b
WHERE a.metric_guid = '26372D42E0B05538E505F330D67E8CEA'
AND round((a.value / 60),0) > 5
AND a.target_guid = b.target_guid
AND b.target_name LIKE '%opp%'
AND a.collection_timestamp > SYSDATE - 1
ORDER BY a.collection_timestamp ASC;
返回低于输出。但我只需要找到具有最大 LAG_MIN 的 DB_NAME。我怎样才能做到这一点?
COLLECTION_TIMESTAM LAG_MIN DB_NAME
------------------- ---------- ----------
2019-03-31 08:27:29 488 opp449a
2019-03-31 08:29:33 105 opp447a
2019-03-31 08:32:29 493 opp449a
2019-03-31 08:34:32 110 opp447a
2019-03-31 08:37:29 498 opp449a
2019-03-31 08:39:33 115 opp447a
解决方案
如果您将当前查询用作 CTE(我将其命名为“temp”),那么这样的事情可能会完成这项工作:
WITH temp AS
(SELECT DISTINCT a.collection_timestamp,
round((a.value / 60),0)lag_min,
substr(b.target_name,1,instr(b.target_name,'.',1,1)- 1)db_name
FROM sysman.mgmt_metrics_raw a,
sysman.mgmt$agents_monitoring_targets b
WHERE a.metric_guid = '26372D42E0B05538E505F330D67E8CEA'
AND round((a.value / 60),0)> 5
AND a.target_guid = b.target_guid
AND b.target_name LIKE '%opp%'
AND a.collection_timestamp > SYSDATE - 1
)
SELECT *
FROM temp
WHERE lag_min = (SELECT MAX(lag_min)
FROM temp
);
推荐阅读
- nuxt.js - 我可以在导航而不是在生成执行期间执行 nuxt asyndata 挂钩吗?
- javascript - 在个人网站上发布谷歌博客现货博客
- qt - 将事件传播到整个对象
- java - Java slackbot - 未处理的异常错误
- reactjs - 带有 React Router 的 React-bootstrap 导航栏
- python-3.x - 使用属性或引用的anytree nodemixin
- java - 挂载 /tmp 时 Elasticsearch 服务失败 noexec
- javascript - JS:像 SQL 一样的 JSON 数据查询
- spring - 修复 springboot 中的 Rabbitmq 连接超时
- vim - 让 Vim 只对长行忽略语法高亮