1 つのテーブルを持つリレーション データベースがあるとします。
{datetime, tapeID, backupStatus}
2012-07-09 3:00, ID33, Start
2012-07-09 3:05, ID34, Start
2012-07-09 3:10, ID35, Start
2012-07-09 4:05, ID34, End
2012-07-09 4:10, ID33, Start
2012-07-09 5:05, ID33, End
2012-07-09 5:10, ID34, Start
2012-07-09 6:00, ID34, End
2012-07-10 4:00, ID35, Start
2012-07-11 5:00, ID35, End
tapeID = それぞれ固有の ID を持つ 100 個の異なるテープのいずれか。
backupStatus = Start または End の 2 つの割り当てのうちの 1 つ。
5 つのフィールドを返す SQL クエリを書きたい
{startTime,endTime,tapeID,totalBackupDuration,numberOfRestarts}
2012-07-09 3:00,2012-07-09 5:05, ID33, 0days2hours5min,1
2012-07-09 3:05,2012-07-09 4:05, ID34, 0days1hours0min,0
2012-07-09 3:10,2012-07-10 5:00, ID35, 0days0hours50min,1
2012-07-09 5:10,2012-07-09 6:00, ID34, 0days0hours50min,0
開始日と終了日をペアにして、各バックアップセットがいつ完全に完了したかを特定しようとしています。ここでの注意点は、単一のバックアップ セットのバックアップが再開される可能性があるため、次の終了イベントまで完了と見なされない複数の開始時刻が存在する可能性があることです。1 つのバックアップセットを 1 日に複数回バックアップする場合があるため、開始時刻と終了時刻を別々に指定する必要があります。
事前にご協力いただきありがとうございます。B