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

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
samuel_lin
Creator
Creator

Auto Ranking for each unique ID

Hi Qlikkers,

Say If I only have two columns, ID and [OrderDate],

ID     OrderDate

1     1/1/2018

1     1/2/2018

1     1/3/2018

2     1/1/2018

2      1/3/2018

and I want to add a column: OrderRank, which gives:

ID     OrderDate     OrderRank

1     1/1/2018          1

1     1/2/2018          2

1     1/3/2018          3

2     1/1/2018          1

2      1/3/2018          2

so it's a rank based on OrderDate and specific for each ID, is this possible with Qlik script?

Thanks,

Samuel

1 Solution

Accepted Solutions
sunny_talwar
MVP
MVP

May be try this

Table:

LOAD ID,

     OrderDate

FROM ....;

FinalTable:

LOAD ID,

     OrderDate,

     AutoNumber(RowNo(), ID) as Rank_Method1

     If(ID = Previous(ID), RangeSum(Peek('Rank_Method2'), 1), 1) as Rank_Method2

Resident Table

Order By ID, OrderDate;

DROP Table Table;

View solution in original post

3 Replies
sunny_talwar
MVP
MVP

May be try this

Table:

LOAD ID,

     OrderDate

FROM ....;

FinalTable:

LOAD ID,

     OrderDate,

     AutoNumber(RowNo(), ID) as Rank_Method1

     If(ID = Previous(ID), RangeSum(Peek('Rank_Method2'), 1), 1) as Rank_Method2

Resident Table

Order By ID, OrderDate;

DROP Table Table;

samuel_lin
Creator
Creator
Author

Hi Sunny,

I lost working this project and just resumed today. Your solution works, I am just curious, when I spot checked, both Method works, but Method1 is much faster than Method2. Is this what you're expecting as well?

Thanks,

Samuel

sunny_talwar
MVP
MVP

I was not, I have seen/heard Method2 to perform significantly better than Method1.