SQL-不确定是否应该使用联接来解析此查询

SQL-不确定是否应该使用联接来解析此查询,sql,Sql,我有以下问题向我提出: 编写一个SQL命令,为平均成绩大于60的每个学生显示该学生的姓名、该学生在所有考试中的总尝试次数以及该学生的平均成绩 为此,我正在使用的表格有: 标记,带examIDPK、studentdpk、result、accurrent、noofttempts字段 和输入idPK和姓名的学生 mark中的field StudentID也是学生的外键 无论如何,这就是我到目前为止的想法: SELECT S.name, AVG(M.RESULT) FROM STUDENT S, MAR

我有以下问题向我提出:

编写一个SQL命令,为平均成绩大于60的每个学生显示该学生的姓名、该学生在所有考试中的总尝试次数以及该学生的平均成绩

为此,我正在使用的表格有: 标记,带examIDPK、studentdpk、result、accurrent、noofttempts字段

和输入idPK和姓名的学生

mark中的field StudentID也是学生的外键

无论如何,这就是我到目前为止的想法:

SELECT S.name, AVG(M.RESULT) FROM STUDENT S, MARK M 
WHERE S.ID = (
SELECT studentID FROM
MARK
WHERE 60 < 
(SELECT AVG(result) from MARK));
但它给我带来的不是一个单一的组函数错误。我尝试过使用一些其他连接,但这也导致了大量错误,所以我很确定我做错了

在这一点上,我几乎完全迷路了。我知道最深的子查询将返回平均结果大于60的学生ID,但当我尝试返回与该特定ID匹配的所有学生ID时,它不起作用。我也不知道如何计算这个查询中的总尝试次数,所以我现在甚至没有尝试过

表数据:


您可以尝试类似的方法:

SELECT 
    S.name, SUM(M.noOfAttempts) AS attempts, AVG(M.RESULT) AS result
FROM
    STUDENT S
INNER JOIN
    MARK M ON (S.ID = M.studentID)
GROUP BY
    S.ID, S.name
HAVING 
    AVG(M.RESULT) > 60

拉桑,虽然它确实根据指定的结果正确地选择了两名学生,但从那时起似乎有点混乱。我对琼斯的尝试次数是5次,本来应该是2次,而他的平均成绩也差了。奇怪的是,对于第二个学生TAO来说,这一切都是正确的。@MateuszJ你能在两个表中编辑问题和发布数据吗?如果有帮助的话,我添加了两个表的屏幕盖。@MateuszJ好的,你有重复的名字,我更新了queryOk,谢谢,这是可行的:唯一的问题是我们打算在明天的考试中做这件事,但这个答案的质量远不及我们在实验室做的,我有点担心我缺少一个更明显的解决方案:/我根本不记得在实验室里必须使用分组,我不知道是否有一个明显的er解决方案,或者这个特定的考试报纸只是小气而已。