上面的图片是我的表格的快照,我需要协助如何计算每个学生的每个科目的测试类型总和的平均值。不知道这是否有意义。像这样的东西;
home_work + class_work + test + exam = Total(所有科目)
然后为每个学生:
我需要将输出按最高得分排列到最低,看起来像这样;
first_name last_name Overall_Total Overall_Average
我真的很感激任何帮助,对MySQL来说还是一个新手。
我终于尝试了以下命令:
SELECT student_id,AVG(home_work + class_work + test + exam)AS平均FROM分数GROUP BY student_id;
它为我提供了我想要的"平均值"在下面的图片上。
[
但是,我还需要帮助才能从student_info表中添加first_name和last_name。
答案 0 :(得分:0)
假设您的分数表每个学生/科目有一行,您可以尝试:
SELECT
i.first_name,
i.last_name,
SUM(s.home_work + s.class_work + s.test + s.exam) AS Overall_Total,
AVG(s.home_work + s.class_work + s.test + s.exam)/4 AS Overall_Average
FROM scores s
JOIN student_info i ON s.student_id = i.student_id
GROUP BY s.student_id
ORDER BY Overall_Average DESC
Overall_Average
除以4,因为MySQL将计算4个分数之和的平均值(因为我将它们加在一起)并且不会将它们视为4个单独的分数。
答案 1 :(得分:0)
谢谢大家的帮助。这最终解决了我的问题。
选择 student_info.first_name,student_info.last_name,scores.student_id,AVG(home_work + class_work + test + exam)AS average FROM分数,student_info WHERE student_info.student_id = scores.student_id GROUP BY student_id 按平均DESC订购;