0
バックアップ情報(backupInfoTable
)を含むテーブルから、失敗したバックアップジョブをクエリしようとしています。SQLクエリ、クエリをより効率的にするにはどうすればよいですか? /全く違ったものを使う?
letが、私はバックアップジョブ情報の次の表を持っていると言う:
jobName| instanceName | jobStatus | date
________________________________________
one |first instance| failed | 12/16/2017
one |first instance| success | 1/1/2017
one |secondInstance| failed | 1/1/2017
one |third instance| success | 12/14/2017
two |first instance| success | 1/1/2017
two |first instance| failed | 1/1/2016
three |first instance| failed | 12/14/2017
私は最新のバックアップが失敗したバックアップであるレコードのみを照会したいと思います。
最新のバックアップが成功した場合、そのバックアップは関係なく、クエリは無視します。
例えばクエリ結果は次のようになります。私が思いついた
one |first instance| failed | 12/16/2017
one |secondInstance| failed | 1/1/2017
three |first instance| failed | 12/14/2017
解決策は次のとおりです。
select distinct
jobName,instanceName,jobStatus,date
from
(
select distinct
jobName,instanceName,jobStatus,MAX(date) as ArecentDate
from backupInfoTable
group by jobName,instanceName,jobStatus
)as A
inner join
(
select distinct
jobName,instanceName,MAX(date) as BrecentDate
from backupInfoTable
group by jobName,instanceName
) as B
ON A.ArecentDate=B.BrecentDate AND
A.jobName=B.jobName AND
A.instanceName=B.instanceName
WHERE T.jobStatus='failed'
が、それを実行するのに長いへの道を取る。.. がありますより良い解決策はありますか?
ありがとうございました!