字段
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