mysql - 用于排序排行榜的 SQL 查询

标签 mysql sql sql-server sql-server-2008 tsql

如果我们有表,排行榜最有效的 SQL 查询是什么:

[UserID], [Points]

我希望结果按积分和排名列排序。

最佳答案

在 SQL Server 2008 中,您可以使用 Ranking functions :

SELECT UserId,
       Points,
       RANK() OVER(ORDER BY Points DESC) AS Rank
FROM LeaderBoards
ORDER BY Points DESC

A MySql rank could be something like this:

SELECT UserId,
       Points,
       @curRank := @curRank + 1 AS Rank
FROM LeaderBoards l, (SELECT @curRank := 0) r
ORDER BY Points DESC

关于mysql - 用于排序排行榜的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105080/

相关文章:

sql - Alter语句与外键冲突,但ID在两个表中都存在

sql - 生成多个UPDATE语句并执行它们

python - 试图在python中为mysql表名放置一个变量

SQL 如何按日期范围分组

PHP SQL 查询构建引擎

sql - 创建一个新列,其中包含另一列后续行中的值列表

sql-server - 如何在 T-SQL 中编写 select case

mysql - 想要 mysql 中给定表的所有列的唯一值

mysql - 机器人筛选网站的每个页面

php - 在 Yii2 中选择左连接失败