我有一张包含游戏得分的表格,每个帐户ID允许多行:scores (id, score, accountid)。我想要列出前10名得分手ID及其得分的列表。

您能否提供一条sql语句来选择前10个得分,但每个帐户ID仅得分一个?

谢谢!

最佳答案

首先,将每个帐户ID的选择限制为最高分。
然后取得前十名的分数。

SELECT TOP 10 AccountId, Score
FROM Scores s1
WHERE AccountId NOT IN
    (SELECT AccountId s2 FROM Scores
     WHERE s1.AccountId = s2.AccountId and s1.Score > s2.Score)
ORDER BY Score DESC

10-02 05:24