Я пытаюсь рассчитать ожидаемое среднее время между концом ошибки и началом следующего (два отдельных столбца) [MTTF].
MTTF = Среднее время до отказа: этосреднее время от конца ошибки до начала следующего
Я уже задавал подобный вопрос, и мне ответили очень профессионально.Мне нравится этот форум.
Мне нужно вычислить разницу между датами в столбце Failure и в столбце End_Of_Repair для каждой строки -1 (другой столбец), преобразовав его в часы и разделив на числоинтервалы для вычисления среднего времени.
Интервалы = количество строк - 1
Это моя таблица:
Failure |Start_Repair |End_Of_Repair |Line |Operator
------------------------|------------------------|------------------------|---------|--------
2019-06-26 06:30:00 |2019-06-26 10:40:00 |2019-06-27 12:00:00 |A |Mike
2019-06-28 00:10:00 |2019-06-28 02:40:00 |2019-06-29 01:12:00 |A |Loty
2019-06-30 10:10:00 |2019-06-30 02:40:00 |2019-07-01 00:37:00 |B |Judy
2019-07-02 12:01:00 |2019-07-02 14:24:00 |2019-07-05 00:35:00 |B |Judy
2019-07-06 07:08:00 |2019-07-06 15:46:00 |2019-07-07 02:30:00 |A |Mike
2019-07-07 08:22:00 |2019-07-08 05:19:00 |2019-07-08 08:30:00 |B |Loty
2019-07-29 04:10:00 |2019-07-29 07:40:00 |2019-07-29 14:00:05 |A |Judy
Так что я должен сделать разницу в ошибкестолбцы конца ошибки, второй минус первый, третий минус второй и т. д. Разделенные на рассчитанные интервалы (которые являются числом строк-1, поскольку я начинаю со строки 2-строки 1).
В двух словах, среднее значение между двумя таблицами.
Я прилагаю изображение, чтобы сделать идею лучше.
![enter image description here](https://i.stack.imgur.com/5lyfl.png)
Таким образом, мне придется выполнить седьмую строку столбца сбоя минус шестую строку столбца end_of_repair, шестую строку сбоя минус пятую строку столбца end_of_repair и так далее, пока вы не доберетесь до первого.
Я думал:
SELECT line,
DATEDIFF(hour, min(End_Of_Repair), max (Failure)) / nullif(count(*) - 1, 0) as 'intervals'
from Test_Failure
group by line
Но результаты таковы:
A = 253
B = 76
Результат должен вернуться
A = (12,1 + 173, 93 + 529,6) / 3 = 238 ч
B = (35,4 + 55,78) / 2 = 45,59 ч