У меня есть таблица, которая содержит журналы времени обработки. Я добавил столбец Elapsed, который возвращает секунды в зависимости от времени начала и окончания. Возвращенные строки предназначены для заданий, выполненных за последние 24 часа. Я также хочу добавить столбец, который показывает среднее время обработки за последние 3 месяца, а затем разницу между сегодняшним днем и средним значением за 3 месяца.
SELECT Job
,RunDate
,Start
,End
,DATEDIFF(second,start,end) 'Elapsed(s)'
FROM table.jobs
where RunDate between DATEADD (HOUR,-24,GETDATE()) and GETDATE()
order by Job
Мой запрос возвращает это:
Job RunDate Start End Elapsed(s)
----------------------------------------------------------
1 2019/06/05 00:12:23 00:13:50 87
2 2019/06/05 00:15:23 00:17:50 147
3 2019/06/05 00:12:00 00:13:50 110
4 2019/06/05 00:10:23 00:11:23 60
5 2019/06/05 01:34:10 01:50:49 999
Что бы я хотел вернуть:
Job RunDate Start End Elapsed(s) 3monthAVG Diff
------------------------------------------------------------------------------
1 2019/06/05 00:12:23 00:13:50 87 90 3
2 2019/06/05 00:15:23 00:17:50 147 140 -7
3 2019/06/05 00:12:00 00:13:50 110 120 10
4 2019/06/05 00:10:23 00:11:23 60 55 -5
5 2019/06/05 01:34:10 01:50:49 999 1012 13