mysql成绩排名


关于mysql成绩排名,网上大部分只是order by简单排序,忽略了成绩相同并列名次的问题。

定义了一个表score结构为:

mysql随数据库中意添加一些数据。

SELECT * FROM score;

 查询结果为:

我的解决方案:

SET @score = 0;
SET @sort = 1;
SET @num = 0;

SELECT id, stundetNo, score, sort
FROM (
	SELECT id, stundetNo, score, @num: = @num + 1, IF (score = @score, @sort, @sort: = @num) AS sort,
		@score: = score
		FROM score
		ORDER BY score DESC
	) AS t;

 结果为:

或者:

SELECT id, stundetNo, score, (
		SELECT count(*) + 1
		FROM score s
		WHERE s.score > score.score
		) sort
FROM score

 结果为:

受到收到

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM