【发布时间】:2020-01-08 14:43:35
【问题描述】:
这是我的桌子:
我试试这个代码:
SELECT student_name, (marks)*100/(SELECT SUM(marks) as 'totalmarks')
from tbl_marks
GROUP BY student_name
我得到了这个结果:
【问题讨论】:
这是我的桌子:
我试试这个代码:
SELECT student_name, (marks)*100/(SELECT SUM(marks) as 'totalmarks')
from tbl_marks
GROUP BY student_name
我得到了这个结果:
【问题讨论】:
我认为你想要:
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
【讨论】: