Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

FirstSortedValue Count

Hi Qlikview Experts,

I am new to this domain and require some help.

I have a transactional table with a duplicate unique identifiers.

I would like to aggregate this table based on the last status the unique identifier was in.

    

Transactional Data
CommunicationIdProcess Status LogIdStatus Desc
12341Status A
12342Status B
12343Status C
12344Status D
12345Status ELastest for that ID
56781Status A
56782Status B
56783Status C
56784Status DLastest for that ID
91231Status A
91232Status B
91233Status C
91234Status DLastest for that ID
45671Status A
45672Status B
45673Status C
45674Status D
45675Status ELastest for that ID

  

Required Output
Status DescCount
Status E2
Status D2

Thanks in advance,

Yuvir

1 Solution

Accepted Solutions
sunny_talwar

May be like this in a straight table

Dimension

=Aggr(FirstSortedValue([Status Desc], -[Process Status LogId]), CommunicationId)

Expression

Count(DISTINCT CommunicationId)

Capture.PNG

View solution in original post

7 Replies
neelamsaroha157
Specialist II
Specialist II

Check this out

alexdataiq
Partner - Creator III
Partner - Creator III

I'm sure there must be a simpler way, but I gave it a try:

[Transactional Data]:

LOAD * INLINE [

    CommunicationId, Process Status LogId, Status Desc

    1234, 1, Status A

    1234, 2, Status B

    1234, 3, Status C

    1234, 4, Status D

    1234, 5, Status E,

    5678, 1, Status A

    5678, 2, Status B

    5678, 3, Status C

    5678, 4, Status D,

    9123, 1, Status A

    9123, 2, Status B

    9123, 3, Status C

    9123, 4, Status D,

    4567, 1, Status A

    4567, 2, Status B

    4567, 3, Status C

    4567, 4, Status D

    4567, 5, Status E,

];

NoConcatenate

Output:

LOAD

  [Status Desc],

  Count([Status Desc]) as Count

Group by [Status Desc];

LOAD

  CommunicationId,

  LastValue([Process Status LogId]) as [Process Status LogId],

  LastValue([Status Desc]) as [Status Desc]

Resident [Transactional Data]

Group by CommunicationId;

DROP Tables [Transactional Data];

Anonymous
Not applicable
Author

Temp_Table:

LOAD * INLINE [

    CommunicationId, Process Status LogId, Status Desc

    1234, 1, Status A

    1234, 2, Status B

    1234, 3, Status C

    1234, 4, Status D

    1234, 5, Status E,

    5678, 1, Status A

    5678, 2, Status B

    5678, 3, Status C

    5678, 4, Status D,

    9123, 1, Status A

    9123, 2, Status B

    9123, 3, Status C

    9123, 4, Status D,

    4567, 1, Status A

    4567, 2, Status B

    4567, 3, Status C

    4567, 4, Status D

    4567, 5, Status E

];

Noconcatenate

Table:

Load max([Process Status LogId]) as [Process Status LogId],

     CommunicationId

     Resident Temp_Table group by CommunicationId;

    

Left join (Table)

    

     Load * Resident Temp_Table;

    

     Drop Table Temp_Table;

sunny_talwar

May be like this in a straight table

Dimension

=Aggr(FirstSortedValue([Status Desc], -[Process Status LogId]), CommunicationId)

Expression

Count(DISTINCT CommunicationId)

Capture.PNG

Not applicable
Author

Hi Sunny,

Thank you for your assistance, i seem to be getting the correct figure, but only when i select the relevant status:

The incorrect figures:

Capture.JPG

The correct figure when i filter on the description:

Capture2.JPG

Any ideas? i appreciate the help.

Thanks,

Yuvir

sunny_talwar

Would you be able to share your application to dig deeper to understand the reason for this?

Preparing examples for Upload - Reduction and Data Scrambling

Not applicable
Author

Hi Sunny,

As i created a new app to upload for you to have a look at, I noticed that the values were now correct.

So i created a new sheet in my current app with the exact same calculated dimension and expression and it is now returning the correct result. There were absolutely no filter criteria selected in the original sheet but weirdly it did not seem to work.

Thank you so much for your assistance, i really appreciate it.

Yuvir