Ranking & ties

Bob4grave

Registered User.
Local time
Today, 08:49
Joined
Jan 17, 2013
Messages
19
I have a query that ranks Finishers by numeric time (NumResult), including ties. Oddly, it pairs ties at the lower of the two places--ie, if two Finishers tie for 2nd, they would both be given a Place of 3. This should be an easy fix, but I can't see what to tweak. Is this too complex a ranking query?

SELECT T.MeetClass, T.WholeName, T.NumResult, T.FinishID, (SELECT COUNT(*)
FROM [qryFindFinishers] T1
WHERE T.NumResult > 0 AND T.MeetClass = T1.MeetClass AND T.NumResult >= T1.NumResult) AS Place
FROM qryFindFinishers AS T
WHERE ((((SELECT COUNT(*)
FROM [qryFindFinishers] T1
WHERE T.MeetClass = T1.MeetClass AND T.NumResult >= T1.NumResult))<>False))
ORDER BY T.MeetClass, T.NumResult;
 
Okay... simplified the query a bit, removing the brain-dead duplication, but the core issue remains. I see someone else (Coach Ty) had this same question in 2009, but not answered in his thread either. How do a rank a second-place tie as 1, 2, 2, 4 instead of 1, 3, 3, 4?

This code results in the latter:
SELECT T.MeetClass, T.WholeName, T.NumResult, T.FinishID, (SELECT COUNT(*)
FROM [qryFindFinishers] T1
WHERE T.NumResult > 0 AND T.MeetClass = T1.MeetClass AND T.NumResult >= T1.NumResult) AS Place
FROM qryFindFinishers AS T
ORDER BY T.MeetClass, T.NumResult;
 
OK. Solved. This produces rankings where the tie is the top number (1,2,3,3,5):

SELECT T.MeetClass, T.WholeName, T.NumResult, T.FinishID, ((SELECT COUNT(*)
FROM [qryFindFinishers] T1
WHERE (T.NumResult > 0 AND T.MeetClass = T1.MeetClass AND T.NumResult > T1.NumResult))+1) AS Place
FROM qryFindFinishers AS T
ORDER BY T.MeetClass, T.NumResult;
 

Users who are viewing this thread

Back
Top Bottom