我的表
student_id Mark
-------------------
1 50
2 10
3 20
4 40
我想要一个查询来显示跟随
等标记达到的百分比marks reach_percentage
-------------------------------
10 100%
20 75%
40 50%
50 25%
它需要像 所有学生达到的标记10如此100%, 标记20由3名学生达到75%, 标记40由2名学生达到50%, 标记50由1名学生达到25%。百分比应根据达到的学生人数和学生总数计算。 帮我解决这个任务。感谢。
答案 0 :(得分:3)
这样的事情: -
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小提琴: -