首页 > 解决方案 > 如何获取mysql中“标记”列的百分比

问题描述

这是我的桌子:

这是我的桌子

我试试这段代码:

SELECT student_name, (marks)*100/(SELECT SUM(marks) as 'totalmarks') 
from tbl_marks 
GROUP BY student_name

我得到了这个结果:

这是我得到的结果

标签: mysqlsqlgroup-by

解决方案


我认为你想要:

select m.student_name, m.marks * 100 / t.marks as percent_overall
from (select student_name, sum(marks) marks from tbl_marks group by student_name) m
cross join (select sum(marks) marks from tbl_marks) t

这也可以用窗口函数来表达,例如:

select 
    student_name,
    sum(marks) * 100 / (sum(sum(marks)) over()) percent_overall
from tbl_marks
group by student_name

推荐阅读