【发布时间】:2013-01-02 18:36:12
【问题描述】:
我正在尝试显示特定值的最大值,以及该值的相应时间戳。我的命令正常工作,但不幸的是,如果该值在超过一个时间段内处于最大值,它会显示所有时间戳。这对于多个目标也可能很麻烦。这是我现在使用的:
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 有点陌生,所以这是全新的领域。
【问题讨论】:
-
你用的是什么数据库?
-
对不起,我应该指定的。 Oracle 数据库 11g
标签: sql oracle max multiple-columns