我试图选择具有使用sum的查询的行。我不断收到错误column is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
我将指定的列添加到group by子句中,并且它仅转到查询中的下一列。我真的必须将select子句中的每一列添加到group by子句吗?列不包含在聚合函数或组合条款中
这是我的查询:
SELECT
s.studentId, s.firstName, s.lastName,
c.courseId, c.courseName, c.semesterId AS courseSemesterId,
se.semesterId, se.season, se.year,
e.enrollmentId, e.studentId AS enrolledStudentId, e.courseId AS enrolledCourseId, e.semesterId AS enrolledSemesterId,
a.assignmentId, (sum(a.pointsEarned)/sum(a.pointsPossible)) AS percentage
FROM Students AS s
INNER JOIN Enrollment AS e ON s.studentId = e.studentId
LEFT JOIN Courses AS c ON e.courseId = c.courseId
LEFT JOIN Semesters AS se ON c.semesterId = se.semesterId
LEFT JOIN Assignments AS a ON e.enrollmentId = a.enrollmentId
GROUP BY s.studentId, s.firstName, s.lastName
ORDER BY e.courseId
是的,GROUP BY子句中的所有列必须位于SELECT中,但聚合函数中使用的列除外。 –
那么你是否希望从'assignments'或者它的每一行获得聚合值呢?因为你实际上在你的选择列表中有'a.assignmentID',这意味着你需要单独的每一行。 –