如何查找在整个考试期间在同一日期参加过一次以上考试的所有学生

Posted

技术标签:

【中文标题】如何查找在整个考试期间在同一日期参加过一次以上考试的所有学生【英文标题】:How to find all students who have more than one exams in same date for whole period of exams 【发布时间】:2019-03-02 21:38:13 【问题描述】:

我有一个包含学号、科目、考试日期的表格,我可以使用这个查询找到参加过一次以上考试的学生

SELECT 
     student_number, subject, exam_date
FROM 
     tables
WHERE 
    dates ='01-01-2019' And 
    student_number IN (
         SELECT student_number
         FROM tables WHERE dates ="01-01-2019"
         GROUP BY student_number
         HAVING COUNT(student_number) > 1
         )  

但是,我想查找在整个考试期间(日期列表)在同一日期参加过一次以上考试的所有学生,而不是单独输入每个日期。

【问题讨论】:

【参考方案1】:

你和你的小组关系很亲密。

SELECT student_number, exam_date
FROM tables
GROUP BY student_number, exam_date
HAVING count(*)>1

这应该可以帮助您入门,您的 GROUP BY...

的想法是正确的

【讨论】:

【参考方案2】:

我猜如果一个学生在同一日期有多个考试,那么这些考试将针对不同的科目。 所以你可以使用 EXISTS 来获取你需要的东西:

SELECT student_number, subject, exam_date
FROM tables t
WHERE EXISTS (
  SELECT 1 FROM tables
  WHERE 
    student_number = t.student_number
    AND
    exam_date = t.exam_date
    AND
    subject <> t.subject
)

【讨论】:

以上是关于如何查找在整个考试期间在同一日期参加过一次以上考试的所有学生的主要内容,如果未能解决你的问题,请参考以下文章

课程总结

2019年10月20日第一次参加自学考试

参加51CTO培训,PMP考试通过啦

记第一次参加电子学会(CIE)C语言等级考试附练习题

根据最近的日期窗口选择结果

不参加PMP培训可以考PMP吗?