Как найти всех студентов, которые имеют более одного экзамена в одну и ту же дату за весь период экзаменов - PullRequest
0 голосов
/ 03 марта 2019

У меня есть таблица, состоящая из номера студента, предмета, даты экзамена, и я могу найти студентов, у которых есть более одного экзамена, с помощью этого запроса

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
         )  

Однако я хочу найти всех студентов, которые имеютболее одного экзамена в одну и ту же дату за весь период экзаменов (список дат) вместо ввода каждой даты в отдельности.

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Полагаю, если у студента более одного экзамена в одну и ту же дату, эти экзамены будут проходить по разным предметам.Таким образом, вы можете использовать то, что вам нужно с 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
)
0 голосов
/ 03 марта 2019

Вы довольно близки со своей группой.

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

Это должно помочь вам начать, у вас была правильная идея с вашей GROUP BY ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...