我正在尝试显示特定值的最大值,以及该值的相应时间戳。我的命令正常工作,但不幸的是,如果该值在超过一个时间段内处于最大值,它会显示所有时间戳。这对于多个目标也可能很麻烦。这是我现在使用的:
select target_name,value,collection_timestamp
from (select target_name,value,collection_timestamp,
max(value) over (partition by target_name) max_value
from mgmt$metric_details
where target_type='host' and metric_name='TotalDiskUsage'
and column_label='Total Disk Utilized (%) (across all local filesystems)'
)
where value=max_value;
我想使用相同类型的命令(由于带宽不足,试图避免内部连接等)....但每个 target_name 只显示 1 个最大值/时间戳。有没有办法在不破坏它的情况下将 group by 或 limit 函数协调到其中?我对 SQL 有点陌生,所以这是全新的领域。