SQL-如何查询整个表和分组值
如果我有两个表,例如Students和Grades,并且它们之间存在关系Students.ID=Grades.studentID,我如何查询Grade表中的平均成绩并将其与单个学生的平均成绩进行比较 我已经在这上面呆了很长一段时间了,这就是我到目前为止所做的:SQL-如何查询整个表和分组值,sql,ms-access,Sql,Ms Access,如果我有两个表,例如Students和Grades,并且它们之间存在关系Students.ID=Grades.studentID,我如何查询Grade表中的平均成绩并将其与单个学生的平均成绩进行比较 我已经在这上面呆了很长一段时间了,这就是我到目前为止所做的: SELECT Students.studentName FROM Students, Grades WHERE AVG(grade) < (SELECT AVG(grade) GROUP BY studentName);
SELECT Students.studentName
FROM Students, Grades
WHERE AVG(grade) < (SELECT AVG(grade) GROUP BY studentName);
^This part is to ^This part is to
find out the find out individual
overall grade grade average
average
在MS Access中,用一条SELECT语句很难做到这一点,但如果您创建一个保存的查询,仅从成绩表数据中提供总体成绩平均值,则很容易做到这一点。您可以将该查询命名为qGradeAverage,它的外观如下: 从成绩中选择平均[成绩]作为总体成绩平均值 然后将其添加到最终查询中
SELECT Students.StudentID, Students.StudentName, Avg(Grades.Grade) AS StudentGradeAverage, qGradeAverage.OverallGradeAverage
FROM qGradeAverage, Grades INNER JOIN Students ON Grades.StudentID = Students.StudentID
GROUP BY Students.StudentID, Students.StudentName, qGradeAverage.OverallGradeAverage;
注意:如果您使用的是SQL Server,则可以在单个存储过程中执行此操作,方法是首先获取平均值并将其保存为变量