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: 
Anonymous
Not applicable

Find Top n Record per group

Is it possible to use a loop to look at the records with the same primary key by putting a loop in the middle of a load.

The idea is to order the primary key and check to see if it changes, if it does get the next 3 records for that primary key and so on.

The syntax isn't quit right but the principle hopefully show what I am trying to do.

TableA:
noconcatenate
LOAD
    PrimaryKey,  
    Result
        Do While (Previous(Primary)=Primary)

           First 3,

           Result As B1

        Loop

Resident TableB
Order By Primary;

Any help would be appreciated.

Thanks

Chris

1 Reply
Anonymous
Not applicable
Author

Having a look around this may work better but I cant seem to get the if statement syntax correct.

Could anyone help.

LET TotalRecords=NoOfRows('TableA'); //get total rows from TableA

for i=1 to $(TotalRecords) // loop through every row in TableA
   TableB:

    First  3
    LOAD
         Primary
              if Previous(Primary)=Primary then

                    Result As Top3
              End if
    Resident TableA
    Order By Primary;
Next

Thanks

Chris