Я пытаюсь рассчитать ожидаемое среднее время между началом сбоя и началом следующего (тот же столбец) [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 |
Таким образом, я должен сделать различие в столбце сбоя, второй минус первый, третий минус второй и т. Д. Все делятся на рассчитанные интервалы (которые являются числом строк-1, так как я начинаю со строки 2-строки 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,1 ч