我的 table
student_id Mark
-------------------
1 50
2 10
3 20
4 40
我想要一个查询来显示如下标记所达到的百分比
marks reach_percentage
-------------------------------
10 100%
20 75%
40 50%
50 25%
它需要像 所有学生都达到 10 分,所以 100%, 3 名学生达到 20 分,所以 75%, 标记 40 由 2 个学生达到 50%, 1 名学生达到 50 分,即 25%。百分比应按达到的学生人数占学生总数计算。 帮我解决这个任务。谢谢。
最佳答案
像这样:-
SELECT a.Mark, (COUNT(DISTINCT b.student_id) / total_count) * 100
FROM marks_table a
INNER JOIN marks_table b
ON a.Mark <= b.Mark
CROSS JOIN
(
SELECT COUNT(Mark) AS total_count
FROM marks_table
) Sub1
GROUP BY Mark;
SQL fiddle 在这里:-
关于mysql复杂分组按学生分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21672269/