例如: 表 teaminfo
team rage
青春 100
勇敢 30
果断 70
沉默 80
如果进行简单的排序,只需要将rage进行order by操作即可,但如何返回排名呢
可以换个角度思考,如果比当前行数字大的记录有10条,而比另行数字大的记录有9条,不是也可以说明另外那行的数据比当前行大么?
SQL:
select team,(select count(distinct team) from teaminfo where rage>a.rage) as 排序
from teaminfo
解释:展示当前行的team 以及有多少条记录比该行的rage大
查询结果:
team rage 排序 排序+1
青春 100 0 1
勇敢 30 3 4
果断 70 2 3
沉默 80 1 2
对排序+1,不正是排名么?