SQL - 每个用户记录一个结果

Unk*_*der 2 sql

我有一个网站收集游戏的高分 - 侧边栏显示最新的10个分数(不一定是最高分,只是最新的10分).但是,由于用户可以快速玩多个游戏,因此他们可以控制最新的10个列表.如何编写一个SQL squery来显示最后10个分数,但是将其限制为每个用户一个?

Sco*_*ttE 7

SELECT username, max(score) 
FROM Sometable
GROUP BY username
ORDER BY Max(score) DESC
Run Code Online (Sandbox Code Playgroud)

从中,根据您的数据库平台选择前X名.在ms-sql 2005+中选择top(10)

编辑

对不起,我看到你想要按日期订购的东西.

这是一个使用ms-sql 2005的工作查询.

;
WITH CTE AS
(
SELECT ROW_NUMBER() OVER (PARTITION BY username ORDER BY dateadded DESC) AS 'RowNo',
username, score, dateadded FROM SomeTable
)
SELECT username, score, dateadded FROM CTE
WHERE RowNo = 1 
Run Code Online (Sandbox Code Playgroud)