Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
Коллеги, всем добрый день. Есть такая задача: Существует таблица data, которая представляет собой временную диаграмму, а именно: uid,I,datеtime 4,221,2018-05-03 15:57:30 5,221,2018-05-03 15:57:37 6,321,2018-05-03 15:57:40 7,521,2018-05-03 15:57:42 8,521,2018-05-03 15:57:46 9,521,2018-05-03 15:57:53 a,522,2018-05-03 15:57:57 b,523,2018-05-03 15:58:00 c,533,2018-05-03 15:58:05 d,531,2018-05-03 16:13:56 e,534,2018-05-03 16:14:55 f,521,2018-05-03 16:15:42 10,521,2018-05-03 17:57:46 11,521,2018-05-03 17:57:53 12,522,2018-05-03 17:57:57 13,523,2018-05-03 18:58:00 ... и т.д. uid в базе записан как text, но по факту - это номер записи в шестандцатиричном формате Данную временную диаграмму необходимо поделить на этапы (e1,e2,e3) по признаку I<400(e1);401<I<525(e2);I>525(e3) То есть необходимо запросом получить список этапов с указанием начала и конца этапа: тип этапа;uid записи начала этапа;время начала;uid записи конца этапа;время конца этапа;суммарное время этапа (например в секундах) e1; 4; 2018-05-03 15:57:30; 6; 2018-05-03 15:57:40; 10 e2; 7; 2018-05-03 15:57:42; b; 2018-05-03 15:58:00; 18 e3; c; 2018-05-03 15:58:05; e; 2018-05-03 16:14:55; 1010 e1; f; 2018-05-03 16:15:42; 13; 2018-05-03 18:58:00; 9738 Это похоже на какой-то рекурсивный mysql запрос, как я понимаю... Куда смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 16:08 |
|
||
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
novikovmaДанную временную диаграмму необходимо поделить на этапы (e1,e2,e3) по признаку I<400(e1);401<I<525(e2);I>525(e3)Создайте для этих "этапов" таблицу (name - min - max). А дальше связь, тупой отбор по BETWEEN, группировка и MIN/MAX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 16:16 |
|
||
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
Как-то не очень срастается. Ну выбираю я все записи, которые соответствуют условию I<400. Получаю результат 4,221,2018-05-03 15:57:30 5,221,2018-05-03 15:57:37 6,321,2018-05-03 15:57:40 f,221,2018-05-03 16:15:42 10,221,2018-05-03 17:57:46 11,221,2018-05-03 17:57:53 12,222,2018-05-03 17:57:57 13,223,2018-05-03 18:58:00 Выбраны все записи которые соответствуют данному этапу. А как его разбить на два этапа? с 4-й записи по 6-ю и с f по 13? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 16:26 |
|
||
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
Наверно вопрос сводится к таком: Необходимо выделить крайние записи, между которыми нумерация uid идет последовательно. Видимо, единственное условие для выборки именно такое. Кто-то навскидку скажет, куда смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 16:36 |
|
||
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:00 |
|
||
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
Круто! Конечно, часть записей пропало, но в целом подход понятен. Спасибо огромное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:10 |
|
||
|
Разделение временной диаграммы на области
|
|||
|---|---|---|---|
|
#18+
Oh Wait. В результате данного запроса всегда будет 3 результата. Если этапы будут повторяться, то чуда не произойдет :-( Например: INSERT INTO data (uid, n, dt) VALUES -> ('4',221,'2018-05-03 15:57:30'), -> ('5',221,'2018-05-03 15:57:37'), -> ('6',321,'2018-05-03 15:57:40'), -> ('7',521,'2018-05-03 15:57:42'), -> ('8',521,'2018-05-03 15:57:46'), -> ('9',521,'2018-05-03 15:57:53'), -> ('a',522,'2018-05-03 15:57:57'), -> ('b',523,'2018-05-03 15:58:00'), -> ('c',533,'2018-05-03 15:58:05'), -> ('d',531,'2018-05-03 16:13:56'), -> ('e',534,'2018-05-03 16:14:55'), -> ('f',541,'2018-05-03 16:15:42'), -> ('10',221,'2018-05-03 17:57:46'), -> ('11',221,'2018-05-03 17:57:53'), -> ('12',222,'2018-05-03 17:57:57'), -> ('13',523,'2018-05-03 18:58:00'); Должно быть 4 строки: E1 от записи 4 до 6 E2 от 6 до b E3 от c до f E1 от 10 до 13 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:14 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=52&tid=1829827]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 368ms |

| 0 / 0 |
