MySQL查詢成績百分比是一個通用性很高的問題
這里我們給出一種簡單高效的方法
SELECT score, 100 * COUNT(*) / ( SELECT COUNT(*) FROM score ) AS percentage FROM score GROUP BY score ORDER BY score DESC;
上述代碼將返回一個結果集,其中每一行表示不同的分數值以及這個分數所占的百分比
該查詢語句將score表按照分數進行分組,并計算每個分數所占的百分比
其中分子是該分數值在score表中出現的次數,分母是score表中的記錄總數
最后按照分數逆序排序,輸出結果
可以根據實際需求對查詢結果加以調整
SELECT CONCAT(score, '分 ') AS score, CONCAT(percentage, '%') AS percentage FROM ( SELECT score, 100 * COUNT(*) / ( SELECT COUNT(*) FROM score ) AS percentage FROM score GROUP BY score ORDER BY score DESC ) AS sub;
上述代碼將結果集中的score和percentage字段拼接成標準輸出格式
其中score字段加上'分 '后綴,percentage字段加上'%'后綴
這是更符合實際需要的輸出格式