在项目中有时会用到按照某字段的值排名的情况,@rank可以实现,但是相同数值是不同的排名,这不是我想要的。
如果想实现相同数值是相同排名的话可用以下方法:
SELECT
a.*
FROM
(
SELECT
t1.user_id,
t1.sushe,
sum(t1.sushe) / count(1),
(
SELECT
count(1) + 1
FROM
location_user t
WHERE
t.sushe < t1.sushe
) AS 'order'
FROM
location_user t1
) a
ORDER BY
sushe DESC
这样可以实现查询出sushe的排名,并且相同数值的字段是相同的排名。
如果想要实现相同数值字段是不同的排名请google @rank 的用法。