Skip to main content
Announcements
Qlik Connect 2025: 3 days of full immersion in data, analytics, and AI. May 13-15 | Orlando, FL: Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
GLicks_DG
Contributor III
Contributor III

n-ésim greater value with repeated values on the dataset

Hey guys, I'm having some troubles with MAX and MIN function.

For example, if i have the folowing table:

Dim1
5
4
3
3
3
2
1

 

Max(Dim1, 1) returns 5 - ok;

Max(Dim1, 2) returns 4 - ok;

Max(Dim1, 3) returns 3 - ok;

Max(Dim1, 4) returns 2 ->>>> I would like it to return 3 again.

 

Another solution that could work for me is a way to get the value from a specific row. So if I need the 4th greater value in Dim1 I could order it and then load the valeu from line 4. But I need to do it not by a where clause, since in the same load i am loading some more info regarding the whole column Dim1.

 

Sorry if Im not being too clear, I open to give any extra info. Thanks in advance!

1 Solution

Accepted Solutions
olivetwist
Creator
Creator

Well, it works for me as a field in load. i suppose your data may not like that method and need the where. I didn't mention using where since your original post said you didn't want to. 

View solution in original post

6 Replies
olivetwist
Creator
Creator

EDIT: Never mind, i read more thoroughly. I'll be back in a few with my answer.

Are you trying to do this in the script or within an object in design?

olivetwist
Creator
Creator

I was able to make it work by using:

temp2:
load
if(RowNo()=4,Dim1) as test
Resident TEMP;

TEMP = name of my inline using your data

GLicks_DG
Contributor III
Contributor III
Author

I keep getting an 'Invalid Expression' error if try to use your solution. The only way I managed to actually get the expected outcome was loading with the clause "Where RowNo() = ..." (where the 3 dots are the n in n-ésim). Unfortunatelly that requires me to make a lot of adjustments in the script..

 

Isn't there an easier way to get a specific valeu from a given line in a given column? I mean like a Vector[Position] or something like it? I tryied  'FieldValue()' and even 'Peek()' functions but couldn't manage to get it..

olivetwist
Creator
Creator

are you loading other fields as well? doing any aggregate functions that require a group by? 

Peek is used to assign a variable to a specific value in a field. It is used outside of a load statement against an existing table.

GLicks_DG
Contributor III
Contributor III
Author

I am Loading a couple more fields, but I managed to store what i need from them in variables. The solution to get the n-ésim greatest value though was first ordering my data and then loading with a where clause on the row number.

 

@olivetwist Thank you for all the help!

olivetwist
Creator
Creator

Well, it works for me as a field in load. i suppose your data may not like that method and need the where. I didn't mention using where since your original post said you didn't want to.