Avg.Разница во времени (в секундах) между событиями с использованием идентификатора клиента и отметки времени эпохи Unix - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть набор данных, где я хотел бы отслеживать количество времени между этапами, используя метку времени Unix Epoch, и я хотел бы сгруппировать его по идентификатору клиента.

Данные выглядят какследующий образец:

Sample Data

Желаемый результат:

"Среднее количество секунд до этапа 2 = 21,3"

"Средние секунды от этапа 2 до этапа 3 = 8"

"Сред. Секунды от этапа 3 до этапа 4 = 16"

Некоторые из препятствий, с которыми я сталкиваюсь, - это группировка по идентификатору клиента, а также вычитание одной метки времени Unix одного конкретного действия из другой.

Я рад сделать три разных показателя или столбца для каждогоразница в уровне, если это поможет.

Любая помощь будет очень признательна.Спасибо.

1 Ответ

0 голосов
/ 12 февраля 2019

Добавьте столбец к вашему запросу, чтобы преобразовать эпоху Unix в дату / время:

= Table.AddColumn(#"Changed Type", "Timestamp", each #datetime(1970,1,1,0,0,0) + #duration(0,0,0,[Unix Epoch Timestamp]), type datetime)

Если у вас еще нет таблицы измерений Customer, создайте ее:

Customers = SUMMARIZECOLUMNS ( Actions[Customer ID] )

Создание отношения на Customer ID между [Actions] и [Customers]

Теперь вы можете создать нужные меры:

Seconds Until Stage 2 = 
VAR TimeStart = 
    MIN ( Actions[Timestamp] )
VAR TimeStage2 =
    CALCULATE ( 
        MIN ( Actions[Timestamp] ),
        Actions[Action] = "Moved to Stage 2"
    )
RETURN
    IF ( 
        HASONEVALUE ( Customers[Customer ID] ),
        DATEDIFF ( 
            TimeStart,
            TimeStage2,
            SECOND
        ),
        BLANK()
    )


Avg Seconds Until Stage 2 = 
AVERAGEX ( 
    Customers,
    [Seconds Until Stage 2]
)


Seconds Stage 2 to Stage 3 = 
VAR TimeStage2 =
    CALCULATE ( 
        MIN ( Actions[Timestamp] ),
        Actions[Action] = "Moved to Stage 2"
    )
VAR TimeStage3 =
    CALCULATE ( 
        MIN ( Actions[Timestamp] ),
        Actions[Action] = "Moved to Stage 3"
    )
RETURN
    IF ( 
        HASONEVALUE ( Customers[Customer ID] ),
        DATEDIFF ( 
            TimeStage2,
            TimeStage3,
            SECOND
        ),
        BLANK()
    )


Avg Seconds Stage 2 to Stage 3 = 
AVERAGEX ( 
    Customers,
    [Seconds Stage 2 to Stage 3]
)


Seconds Stage 3 to Stage 4 = 
VAR TimeStage3 =
    CALCULATE ( 
        MIN ( Actions[Timestamp] ),
        Actions[Action] = "Moved to Stage 3"
    )
VAR TimeStage4 =
    CALCULATE ( 
        MIN ( Actions[Timestamp] ),
        Actions[Action] = "Moved to Stage 4"
    )
RETURN
    IF ( 
        HASONEVALUE ( Customers[Customer ID] ),
        DATEDIFF ( 
            TimeStage3,
            TimeStage4,
            SECOND
        ),
        BLANK()
    )


Avg Seconds Stage 3 to Stage 4 = 
AVERAGEX ( 
    Customers,
    [Seconds Stage 3 to Stage 4]
)

Вот пример рабочего файла PBIX: https://excel.solutions/so_54639352/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...