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