1

障害の開始から次の (同じ列) の開始までの予想平均時間を計算しようとしています [MTBF]。

ここで同様の質問をすでに見つけましたが、役に立ちませんでした。

各行 (他の列) の失敗列 ((n+1) - n) の日付の差を計算し、それを時間に変換し、間隔の数で割って平均時間を計算する必要があります。

これは私のテーブルです:

|       Failure        |    Start_Repair      |    End_Of_Repair     | Line  | Piece  |
|----------------------|----------------------|----------------------|-------|--------|
| 2019-06-26 06:30:00  | 2019-06-26 10:40:00  | 2019-06-27 12:00:00  | A     | tube   |
| 2019-06-28 00:10:00  | 2019-06-28 02:40:00  | 2019-06-29 01:12:00  | A     | washer |
| 2019-06-30 10:10:00  | 2019-06-30 02:40:00  | 2019-07-01 00:37:00  | B     | bolt   |
| 2019-07-02 12:01:00  | 2019-07-02 14:24:00  | 2019-07-05 00:35:00  | B     | engine |

したがって、失敗の列、2 番目から 1 番目、3 番目から 2 番目などの差を作成する必要があります。すべてを計算された間隔 (2 行目から 1 行目から開始するため、行数 -1) で割ります。

これは私が書いたSQLコードですが、動作しません...

SELECT ROW_NUMBER() over (ORDER BY t1.Line, t1.Failure ASC) AS 'Row',
(DATEDIFF(HOUR, T1.failure, T2.failure))/'Row' AS '[MTBF]'
From Test_Failure as t1, Test_Failure as t2
where t1.Failure < t2.Failure

エラー: varchar 値 'Row' をデータ型 int に変換するときに変換に失敗しました。

結果が返ってくるはずです:

A = (41.6 + 198.96)/2 = 120 時間

B = (49.85 + 116.35)/2 = 83,1h

4

2 に答える 2