Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Toronto Sept 9th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Extract time difference between same user records in a table

Hi

I have this requirement to find the the time difference between two specific records . There are two parts into this requirement

User Name

Position

Timestamp

Neha Jain

Initiator

11/7/2015 6:01

Neha Jain

Assistor

11/7/2015 6:02

Neha Jain

Assistor

11/7/2015 6:03

Neha Jain

Converter

12/7/2015 6:04

Neha Jain

Initiator

13/7/2015  6:05:00 AM

Neha Jain

Assistor

13/7/2015  6:06:00 AM

Neha Jain

Converter

15/7/2015  6:07:00 AM

Ankit  Jain

Assistor

16/7/2015  6:08:00 AM

Ankit  Jain

Initiator

16/7/2015  6:09:00 AM

Ankit  Jain

Converter

17/7/2015  6:10:00 AM

I have to take single user and find out the time difference between initiator timestamp and convertor timestamp and convert the above table to this

UserName     Time lag

Neha jain          1 day

Neha jain          2 days

Ankit Jain         1 day

and secondly i have to count the number of users with same time lag, so final result will be

Number of users   Time Lag

      2                          1day

      1                           2days

1 Reply
sunny_talwar

Script:

Table:

LOAD *,

  Date(Floor(Timestamp)) as Date;

LOAD * INLINE [

    User Name,    Position,    Timestamp

    Neha Jain,    Initiator,  11/7/2015 6:01:00 AM

    Neha Jain,    Assistor,    11/7/2015 6:02:00 AM

    Neha Jain,    Assistor,    11/7/2015 6:03:00 AM

    Neha Jain,    Converter,  12/7/2015 6:04:00 AM

    Neha Jain,    Initiator,  13/7/2015 6:05:00 AM

    Neha Jain,    Assistor,    13/7/2015 6:06:00 AM

    Neha Jain,    Converter,  15/7/2015 6:07:00 AM

    Ankit Jain,    Assistor,  16/7/2015 6:08:00 AM

    Ankit Jain,    Initiator,  16/7/2015 6:09:00 AM

    Ankit Jain,    Converter,  17/7/2015 6:10:00 AM

];

FinalTable:

LOAD *,

  If([User Name] = Previous([User Name]),

  If(Position = 'Initiator', RangeSum(Peek('Key'), 1), Peek('Key')), 1) as Key

Resident Table

Where Match(Position, 'Initiator', 'Converter')

Order By [User Name], Timestamp;

Concatenate (FinalTable)

LOAD *,

  0 as Key

Resident Table

Where Match(Position, 'Assistor');

DROP Table Table;


Capture.PNG