|
|
|
Помогите пжл с отбором интервалом в таблице
|
|||
|---|---|---|---|
|
#18+
Добрый вечерю Подскажите пожалуйста как отобрать общее время когда система была нагружена. У меня есть таблица. Миниатура: CREATE TABLE tasks ( taskid NUMBER(5) PRIMARY KEY, projectid NUMBER(5), start_fact date, end_fact date, oper_name date); INSERT INTO tasks VALUES (1, 101, TO_DATE('2017/07/04 01:02:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/04 01:44:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (2, 101, TO_DATE('2017/07/04 02:02:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/04 11:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (3, 101, TO_DATE('2017/07/04 02:01:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/04 03:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (4, 101, TO_DATE('2017/07/04 17:02:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/04 21:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (5, 101, TO_DATE('2017/07/04 21:06:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/04 23:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (6, 102, TO_DATE('2017/07/03 00:09:24', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/03 02:00:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (7, 102, TO_DATE('2017/07/03 01:02:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/03 11:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (8, 102, TO_DATE('2017/07/03 02:02:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/03 03:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (9, 102, TO_DATE('2017/07/03 17:02:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); INSERT INTO tasks VALUES (10, 102, TO_DATE('2017/07/03 21:06:44', 'yyyy/mm/dd hh24:mi:ss'),TO_DATE('2017/07/03 22:07:44', 'yyyy/mm/dd hh24:mi:ss'),'LTM'); Как видно из таблицы есть процессы с датой начала и датой конца за день. Некоторые из них работают и пересекаются друг с другом. Мне нужно высчитать время работы системы в общем т.е. если смотреть на с 1 по 5 id то это время от сумма 2017/07/04 01:02:44 до 2017/07/04 01:44:44 , с 2017/07/04 02:01:44 по 2017/07/04 11:02:44, с 2017/07/04 17:02:44 по 2017/07/04 21:02:44 и 2017/07/03 21:06:44 по 2017/07/03 22:07:44. Задача была бы проще если б надо было посчитать просто время всех процессов ( в минутах например) select (MAX(END_FACT)-MIN(START_FACT))*1440 as "Время загрузки" from tasks group by projectid Но в данном случае нужно просто общее время нагрузки процессами системы. У мысль одна взять максимальное время окончание вычесть минимальное время начало и потом каким то образом вырезать время простоя. Но как его найти не могу понять. Просьба помочь друзья) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 23:36 |
|
||
|
Помогите пжл с отбором интервалом в таблице
|
|||
|---|---|---|---|
|
#18+
Mashennik, склеить малые пересекающиеся интервалы в один большой. дальше посчитать сумму длин больших непересекающихся интервалов. пример слияния интервалов , с картинками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 04:30 |
|
||
|
Помогите пжл с отбором интервалом в таблице
|
|||
|---|---|---|---|
|
#18+
Добрый Э - ЭхMashennik, склеить малые пересекающиеся интервалы в один большой. дальше посчитать сумму длин больших непересекающихся интервалов. пример слияния интервалов , с картинками Спасибо, сегодня попробую) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 08:29 |
|
||
|
Помогите пжл с отбором интервалом в таблице
|
|||
|---|---|---|---|
|
#18+
Mashennik, а чего там пробовать? делать надо! Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 09:08 |
|
||
|
Помогите пжл с отбором интервалом в таблице
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, Спасибо данный вариант работает осталось подумать как группировать данные по project_id чтобы выводить на каждый project_id время работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 11:01 |
|
||
|
Помогите пжл с отбором интервалом в таблице
|
|||
|---|---|---|---|
|
#18+
Mashennik, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 11:52 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39483065&tid=1885655]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 522ms |

| 0 / 0 |
