【问题标题】: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
         )  

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

【问题讨论】:

    标签: mysql sql


    【解决方案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
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 2018-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多