我有了兩個字段一個scores
表:如何根據字段獲得行數相對於總行數的等級?
- USER_ID
- 得分
我獲取匹配的user_id的列表是特定行。我如何根據score
來確定每行相對於總行數的排名?結果集中的行不一定是連續的(分數將在一行到下一行之間變化很大)。我不確定這是否重要,但user_id
是一個獨特的領域。
編輯
@Greelmo
我已經下令行。如果我取15行,我不希望等級爲1-15。我需要它是該行與屬性對整個表進行比較的位置。所以如果我有200行,一行的排名可能是3,另一行可能是179(這些是任意#的例子只)。
編輯2
我有一些運氣與此查詢,但其實我是想避免關係
SELECT
s.score
, s.created_at
, u.name
, u.location
, u.icon_id
, u.photo
, (SELECT COUNT(*) + 1 FROM scores WHERE score > s.score) AS rank
FROM
scores s
LEFT JOIN
users u ON u.uID = s.user_id
ORDER BY
s.score DESC
, s.created_at DESC
LIMIT 15
如果兩個或多個行具有相同的分數,我想要最新一個(或者最早 - 我不在乎)排在更高的位置。我試圖用AND id > s.id
修改子查詢,但最終給了我一個意想不到的結果集和不同的關係。
這很好,謝謝! – 2010-05-11 17:10:13