如何查找在整个考试期间在同一日期参加过一次以上考试的所有学生
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
)
【讨论】:
以上是关于如何查找在整个考试期间在同一日期参加过一次以上考试的所有学生的主要内容,如果未能解决你的问题,请参考以下文章