我正在使用标准 SQL 进行锻炼查询。在这个例子中,我需要的是获取每个参加任何课程超过 2 次的学生的姓名和 ID。在这种情况下,表格包含以下信息(我将仅列出对本练习重要的列):
学生有学生的 ID 和姓名。课程具有课程 ID。类具有组 ID 和课程 ID。注册有 reg。ID,学生ID,班级ID和获得的成绩。
因此,总而言之,找出哪些学生在注册中有超过 2 个条目,这些条目与同一课程相匹配,通过类。到目前为止,我已经得到了这个:
SELECT Student.id, Student.name FROM
Student S JOIN Registration R on S.id = R.studentID
WHERE (SELECT COUNT(*) FROM
Course C JOIN Class L on L.courseId = C.id
JOIN Registration R on R.classId = L.id
group by C.id ) > 2
问题是,Count 和 Group by 是否以这种方式工作?他们是否允许我获得每组的比赛数量,或者他们只是给我在片场的结果,就像我担心的那样?
如果是这样,关于如何解决这个问题的任何想法?谢谢您的帮助!!