ila*_*ila 6 sql sql-server puzzle
我想找到解决现实问题的不同方法:想象一下比赛或比赛,用户收集积分.您必须构建一个查询以显示具有最佳"n"分数的用户列表.
我正在做一个例子来澄清.让我们说这是用户表,获得的积分:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
6 - 25
Run Code Online (Sandbox Code Playgroud)
如果我想要前3个分数,结果将是:
UserId - Points
1 - 100
2 - 75
3 - 50
4 - 50
5 - 50
Run Code Online (Sandbox Code Playgroud)
这可以在视图或存储过程中实现,如您所愿.我的目标数据库是Sql Server.实际上我解决了这个问题,但我认为有不同的方法来获得结果...比我的更快或更有效率.
Esp*_*spo 10
未经测试,但应该工作:
select * from users where points in
(select distinct top 3 points from users order by points desc)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16624 次 |
| 最近记录: |