これで望ましい結果が得られると思います。対象の勝者が別の勝者とポイントを争う場合を適切に処理することに注意してください。 (どちらも同じ位置になります。)
SELECT COUNT(*) + 1 AS Position
FROM myTable
WHERE Points > (SELECT Points FROM myTable WHERE Winner = 'Sally')
編集 :
「プラグイン」したいIgnacio Vazquez-Abrams '答えは、いくつかの点で上記よりも優れています。
たとえば、すべて(または複数)の勝者とその現在の位置を一覧表示できます。
もう1つの利点は、より複雑な条件を表現できることです。特定のプレーヤーが別のプレーヤーよりも進んでいることを示します(以下を参照)。 incredimanを読む 「結びつき」がないという趣旨のコメントは、私にこれを調べるように促しました。クエリは、プレーヤーが同じポイント数を持っている状況を処理するために、次のようにわずかに変更できます(このようなプレーヤーには、以前は同じ位置値が与えられていましたが、現在は位置値が相対的な開始値にさらに関連付けられています)。
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