特定の値の最大値と、その値に対応するタイムスタンプを表示しようとしています。コマンドは正常に機能していますが、残念ながら、値が複数の期間にわたって最大値になっている場合は、すべてのタイムスタンプが表示されます。これは、複数のターゲットでも面倒な場合があります。これが私が今使っているものです:
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を調整したり、これに関数を制限したりする方法はありますか?私はSQLに少し慣れていないので、これはすべて新しい領域です。