mysqlでは、dense_rank()の効果が実現されます。-number_rank()を使用して数列の効果を達成しないでください。

      これは、リートコードのデータベースの178.スコアランキングを行ったときに感じたものです。詳細については、https://blog.csdn.net/weixin_42845682/article/details/105252542を参照してください。
      
      

1.稠密ランク()の役割

      density_rankの役割は、ソートすることです。また、重複する値がある場合、ランキングには影響しません。
      たとえば、テーブルの名前はscoreで、列はidとscoreです。

id score
1 	80
2 	90
3 	80 
4 	40

      score_rank()を使用してスコアをソートすると、次の効果が得られます。

90	1
80	2
80	2
40	3

      この方法は非常に便利ですが、mysqlでは使用できません...

第二に、MySQLでデンスランク()の効果を達成する方法

      次のように:

select
	s1.score Score,
	(select 
		count(distinct(s2.score))
	from scores s2 
	where s2.score >= s1.score 
	) as Rank  
from scores s1
order by Rank

      
      
      

48件の元の記事を公開 36のような 訪問130,000+

おすすめ

転載: blog.csdn.net/weixin_42845682/article/details/105253070