首页 > sql 能查询出某条记录位置

sql 能查询出某条记录位置

字段
id,shares // 分享次数
记录
1, 2
2, 0
3, 1
4, 0,
5, 1

需求 计算某条记录的分享排行

假设计算id 2 的分享排行 则是4

sql 能算出某条记录的 分享排行吗?


mysql有点麻烦,给一下思路,数据表如下:

mysql没有像sql server一样提供记录行数的函数,但可以用预定义变量实现:

全部排名之后,可以查询特定的一条记录的排名


SQLServer提供了ROW_NUMBER()函数可以实现。

SELECT t.rid
  FROM (SELECT id,
               ROW_NUMBER() OVER(ORDER BY shares DESC) AS rid
          FROM table) t
 WHERE t.id = 2
【热门文章】
【热门文章】