我想找到解决现实生活问题的不同方式:想象要举办比赛或游戏,期间用户收集点。您必须建立查询以显示具有最佳“n”分数的用户列表。SQL查询从列表中获得最高的“n”分数
我正在做一个例子来澄清。比方说,这是用户表,用点获得:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
6 - 25
如果我想的前3名的分数,其结果将是:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
这可以在视图或实现存储过程,只要你想。我的目标数据库是Sql Server。其实我解决了这个问题,但我认为有不同的方法来获得结果...比我的更快或更有效率。
我有一个类似的问题,并试图使用MAX,然后我读你的回答并记住了DENSE_RANK。为我节省了很多时间。 – DataGirl 2012-06-21 20:49:47