Всем привет!
Бизнес кейс: устройства самообслуживания (УС) к которым регулярно выезжает сервисник, УС может быть несколько шт. на одном объекте, каждый ус и объект имеет свой уникальный идентификатор.
При открытии УС сервисник вводит личный пин, информация о времени и коде выгружается в табл., формат
- Дата и время в формате ГГГГММДД:ЧЧММСС)
- № УС
- Сервисный код
Бизнес проблематика следующая, нужно оценить сколько выездов было совершено на объект при условии что все операции с УС на объекте в условном интервале 1 час считаются как один заезд.
Т.е. если на объекте №9999 УС №12345 открыт в 01.01.19 16:00 а УС №123456 в 01.01.19 16:45 значит что в этот день совершен 1 выезд.
Ситуация 2 на объекте №9999 УС №12345 открыт в 17:00, УС №123456 в 17:30 и УС 1234567 в 18:00 значит что в этот день совершено 2 выезда.
Собственно вопрос, как кодом оформить логику для подсчета выездов в день?
Округляем временную метку до часа и считаем уникальные количества.
16:45 и 16:00 округлятся до 16:00.
17:30 и 18:00 соответственно в 17 и 18
Цитата: admin от 29 марта 2019, 03:08:09 Округляем временную метку до часа и считаем уникальные количества.
16:45 и 16:00 округлятся до 16:00.
17:30 и 18:00 соответственно в 17 и 18
Не подходит, ситуация: первый УС обслужили в 16:50 второй в 17:20, третий в 17:30. Это один заезд. Но по предложенной логике будет два.
Т.е. надо учитывать часовой интервал?
Это тоже несложно.
Сначала загружаем данные, затем в резидентной загрузке с сортировкой считаем интервалы от первого открытия в день, по объекту.
В Excel реализован расчет?
Цитата: admin от 29 марта 2019, 04:02:31 Т.е. надо учитывать часовой интервал?
Это тоже несложно.
Сначала загружаем данные, затем в резидентной загрузке с сортировкой считаем интервалы от первого открытия в день, по объекту.
В Excel реализован расчет?
В экселе нет.
Буду оч признателен за простейший пример или ссылку как сделать интервал от первого открытия.
Косвенно, может помочь пример с загрузкой курсов валют (http://help.qlik.com/ru-RU/sense/November2018/Subsystems/Hub/Content/Sense_Hub/Scripting/create-date-interval-from-single-date.htm)
Также следует ознакомиться с:
IF(), Peek() (http://help.qlik.com/ru-RU/sense/November2018/Subsystems/Hub/Content/Sense_Hub/Scripting/InterRecordFunctions/Peek.htm), load .. resident .. order by... (http://help.qlik.com/ru-RU/sense/November2018/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm)