【问题标题】:ORACLE,SQL nested: From Multiple tables, compares, countingORACLE,SQL 嵌套:来自多个表,比较,计数
【发布时间】:2017-04-24 14:37:39
【问题描述】:

我正在使用 SQL+,但在比较计数值时无法查询多个表。

例如,

我想知道在高中参加过 5 次以上考试的学生姓名和 ID #。学生姓名和 ID #s 存储在 STUDENT 表中,而考试数量和学生 ID#s 存储在 EXAM 表中。

查询“参加过 5 次以上考试的学生姓名和身份证”的最佳方式是什么?

我在 ORACLE 和 SQLPLUS 工作。

谢谢

【问题讨论】:

  • Edit您的问题并添加表格的定义(如create table 语句)、一些示例数据和基于该数据的预期输出。 Formatted textno screen shotsedit 您的问题不要在 cmets 中发布代码或其他信息。

标签: sql oracle multiple-tables


【解决方案1】:

在按 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

很难说。当问题的框架不佳时。

【讨论】:

    猜你喜欢
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多