ORACLE,SQL嵌套:来自多个表,比较,计数

时间:2017-04-24 14:37:39

标签: sql oracle multiple-tables

我正在使用SQL +,在查询多个表时遇到问题,同时比较计数值。

例如,

我想知道高中考试超过5门考试的学生姓名和身份证号码。学生姓名&& ID#存储在STUDENT表中,而考试数量和学生ID#存储在EXAM表中。

查询“参加考试超过5项的学生姓名和身份证”的最佳方法是什么?

我在ORACLE和SQLPLUS工作。

由于

1 个答案:

答案 0 :(得分:0)

在按STUDENT_ID分组的考试表上使用COUNT(*)来查找每个学生参加的考试数量。 HAVING子句将过滤器应用于聚合,因此我们只获得参加过五次以上考试的学生。

这提供了一个子查询,我们可以使用它来过滤主学生表。

select s.name, s.student_id
from student s
where s.id in 
   ( select e.student_id 
     from exam e
     group by e.student_id having count(*) > 5 )

我写了所有这些,然后我重新阅读了你的问题,也许它就像:

select s.name, s.student_id
from student s
     join exam e
     on e.student_id = s.student_id
where e.no_of_exams > 5

很难说。当问题框架不好时。