Myslím, že to přinese požadovaný výsledek. Všimněte si, že i správně řeší případy, kdy je cílový vítěz nerozhodný o body s jiným vítězem. (Oba zaujmou stejnou pozici).
SELECT COUNT(*) + 1 AS Position
FROM myTable
WHERE Points > (SELECT Points FROM myTable WHERE Winner = 'Sally')
Upravit :
Chci "zapojit" Ignacio Vazquez-Abrams ' odpověď, která je v několika ohledech lepší než výše uvedená.
Například umožňuje uvést všechny (nebo několik) vítězů a jejich aktuální pozici.
Další výhodou je, že umožňuje vyjádřit složitější podmínku k označení, že daný hráč je před jiným (viz níže). Čtení incrediman Komentář uživatele v tom smyslu, že nebudou existovat žádné „vazby“, mě přiměl, abych se na to podíval; dotaz lze mírně upravit následovně, aby se vyřešila situace, kdy hráči mají stejný počet bodů (takovým hráčům by dříve byla přidělena stejná hodnota pozice, nyní je hodnota pozice dále svázána s jejich relativními počátečními hodnotami).
SELECT w1.name, (
SELECT COUNT(*)
FROM winners AS w2
WHERE (w2.points > w1.points)
OR (W2.points = W1.points AND W2.Start < W1.Start) -- Extra cond. to avoid ties.
)+1 AS rank
FROM winners AS w1
-- WHERE W1.name = 'Sally' -- optional where clause