我有一张成绩/课程表。我试图看一个人上了多少次课程,并且还取得了他们取得的最高成绩。
到目前为止,我有:
SELECT tnumber, courseid, grade FROM grades
我需要显示多次使用相同课程的所有数据。还列出了该课程的学生最高分。
如何记录课程发生的次数? 我想显示学生的tnumber,course_id,尝试和最高分。所有这些都在一个查询中。
如果我需要展示我的桌子的一个例子。让我知道,我发布他们。我只是不想用代码重载页面!
感谢。
答案 0 :(得分:1)
例如(表格别名G不是必需的,因为仅涉及使用1个表格)
SELECT g.tnumber, g.courseid, min(g.grade), count(*)
FROM grades g
GROUP BY g.tNumber, g.CourseID
这将返回具有最高(字母等级)的每个记录的tnumber和courseID,以及对于同一个tnumber和courseID存在多少记录的计数。您可以使用count(*)或count(1)。
基于之前的posts我假设成绩是按字母顺序排列的。
答案 1 :(得分:0)
尝试此查询(我假设成绩是一个数字列):
select tnumber, course_id, count(course_id), max(grade)
from grades
group by tnumber, course_id
答案 2 :(得分:0)
SELECT tnumber, courseid, COUNT(courseid) times_taken, MAX(grade) highest_grade FROM grades GROUP BY tnumber, courseid
这假定grade
是一个数字。