Как получить курсы в одной и только одной степени бакалавра? - PullRequest
0 голосов
/ 30 октября 2018

Данные:

Programs  
- degree (name)  
- Course (course list)  

Degrees  
- code (unique identifier)  
- name  
- type (either postgrad or undergrad)  

Course  
- code (unique identifier)   
- name  

Как мне найти курсы, включенные в одну и только одну программу степени бакалавра, используя те же данные, что и выше?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Если вам нужны курсы, которые имеют ровно одну степень UG и не имеют PG, то:

select p.course
from programs p join
     degrees d
     on p.degree = d.code
group by p.course
having count(*) = 1 and min(d.type) = 'UG';
0 голосов
/ 30 октября 2018

Как я уже писал в комментарии, вы присоединяетесь к programs.course = courses.name, но biology записано не одинаково в обеих таблицах.

Как только это будет исправлено, я напишу запрос следующим образом:

select c.code from programs p
join degrees d on p.degree = d.code
join course c on p.course = c.name  
where d.type = 'UG'
group by c.code 
having count(degree) = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...