Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как правильно сгруппировать данные и получить правильный график
|
|||
|---|---|---|---|
|
#18+
Доброе время суток. Дорогие друзья, помогите, пожалуйста с такой проблемой. Есть выгрузка из бд такого рода. Агент Статус Начало (время вхождения в статус) Конец (время выхода из статуса) Ваня Вышел 21.06.2019 19:55 22.06.2019 13:55Ваня Готов 22.06.2019 13:55 22.06.2019 13:58Ваня Готов 22.06.2019 13:58 22.06.2019 13:59Ваня Обрабатывает 22.06.2019 13:59 22.06.2019 14:02Ваня Перерыв 22.06.2019 14:02 22.06.2019 14:10Ваня Готов 22.06.2019 14:10 22.06.2019 14:15Ваня Обрабатывает 22.06.2019 14:15 22.06.2019 14:18 Необходимо сделать подсчет времени нахождения в каждом статусе и начало смены. Все сделал кроме смен, подсчитать и сгруппировать легко. но вот столкнулся с такой проблемой. Данные записываются так как выше указал. Статус "вышел", говорит, что пользователь закрыл программу, а значит смена закончилась, что показывает колонка "начало", а колонка "Конец" говорит о том что он вышел из этого статуса (то есть вошел в систему). У тех у кого смена в одном дне, я могу выгрузить, просто так же группирую и нахожу первый и последний статус. Но вот когда у агента рабочий график допустим с 19 до 07, то тут проблема уже есть. Ведь мне надо сгруппировать по рабочему дню. А тут смена затрагивает сразу 2 дня, как мне получить нужные мне данный. Грубо говоря, что есть сейчас. Я считаю общее время нахождения в статусах, за дату беру первый статус и время вхождения в него (То есть самый первый статус "готов" 22.06.2019 ) группирую по дате и агенту записи и если в этот день я встречаю первый и последний статус то все ок. Но если агент работал после 00:00, значит день новый и подсчет уже идет по другому, как новая запись. Как мне надо построить логику запроса? я не могу думать на sql( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 20:24 |
|
||
|
Как правильно сгруппировать данные и получить правильный график
|
|||
|---|---|---|---|
|
#18+
Vincent_low92Как мне надо построить логику запроса? я не могу думать на sql( SQL пока тут не причём (можно хоть в Excel и пр.) для начала неплохо-бы определится с задачами, т.к. например время нахождения в каждом статусе можно предположить что будет = конец-начало а с началом смены - тут уже чисто от бизнеса зависит как только будет определено что считать началом смены (кроме колонны "начало" - не хватает другой логики, например необходимый "статус" и т.д.) то и дальше можно уже решать в зависимости от определений. с графиком - такая-же ерунда: нужно поставить цели что и как нужно отображать, в зависимости от них будут правильные и неправильные пути реализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 21:02 |
|
||
|
Как правильно сгруппировать данные и получить правильный график
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 21:14 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39840516&tid=1687504]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 403ms |

| 0 / 0 |
