作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有两个表,一个是指学生的成绩,另一个是指学生的信息,这两个表由属性 STUDENTS.ST_ID
和 连接>GRADES.G_STUDENTS
。该查询要求我检索所有平均分数高于具有特定 STUDENTS.ST_ID_NUM
(matricule 的另一个属性)学生的平均分数的学生。我可以检索所有学生的平均分数:
SELECT STUDENTS.ST_NAME, STUDENTS.ST_SURNAME, AVG(GRADES.G_GRADE)
FROM STUDENTS INNER JOIN GRADES
ON STUDENTS.ST_ID = GRADES.G_STUDENT
GROUP BY STUDENTS.ST_NAME, STUDENTS.ST_SURNAME;`
以及具有特定 STUDENTS.ST_ID_NUM 的特定学生的平均分数:
select avg(grades.g_grade)
from students inner join grades
on students.st_id = grades.g_student
where students.st_id_num = '061RDB121';
如何将条件放在第一个查询上?如果我在 HAVING
子句中放置另一个子查询,则不起作用!我认为内部查询可以工作,但我不知道如何编写。
最佳答案
这样应该可以;
SELECT STUDENTS.ST_NAME, STUDENTS.ST_SURNAME, AVG(GRADES.G_GRADE)
FROM STUDENTS INNER JOIN GRADES
ON STUDENTS.ST_ID = GRADES.G_STUDENT
GROUP BY STUDENTS.ST_NAME, STUDENTS.ST_SURNAME;
having AVG(GRADES.G_GRADE) > (select avg(grades.g_grade)
from students inner join grades
on students.st_id = grades.g_student
where students.st_id_num = '061RDB121');
关于sql - HAVING 子句的子查询不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18897839/
我是一名优秀的程序员,十分优秀!