1
重複がある場合は、重複の最上位が取られます。 例:私は次のような方法でmysqlのランクを見つける必要があります
Value - Rank
-----------
10 - 1
20 - 3
20 - 3
30 - 5
30 - 5
40 - 6
50 - 7
20ので、ランクが3で、2番目と3番目の位置にきます。 30位は4位と5位になりますのでランクは5です
重複がある場合は、重複の最上位が取られます。 例:私は次のような方法でmysqlのランクを見つける必要があります
Value - Rank
-----------
10 - 1
20 - 3
20 - 3
30 - 5
30 - 5
40 - 6
50 - 7
20ので、ランクが3で、2番目と3番目の位置にきます。 30位は4位と5位になりますのでランクは5です
select t3.value, maxrank
from your_table t3
join
(
select t1.value, max(t2.rank) as maxrank
from your_table t1
join
(
select value, @rank := @rank + 1 as rank
from your_table
cross join (select @rank := 0) r
order by value
) t2 on t1.value = t2.value
group by t1.value
) t4 on t3.value = t4.value
ありがとうございます。あなたは天才です。 – Harris