2015-12-11 2 views
0

Как я могу это обозначить в алгебре отношений? Я всегда смущаюсь с теми группами GROUP BY и HOWING COUNT ... Не могу это сформулировать.SQL to Relation Algebra

SELECT DISTINCT Name 
FROM studies, course 
WHERE (SELECT COUNT(course_id) FROM studies 
GROUP BY course_id HAVING COUNT (course_id) > 1) >= 2 
AND (SELECT course_id FROM studies 
GROUP BY course_id HAVING COUNT (course_id) > 1) = course.course_id; 
+2

Это было бы легче понять, если вы могли бы предоставить таблицу определения, образцы данных и желаемые результаты. Вы пытаетесь определить, какие исследования связаны с ним более одного курса? – sgeddes

+0

Нет, он должен показать название курса, по крайней мере, двух учащихся, зачисленных – AlienTed

ответ

0

Если я понять Ваш комментарий правильно, то вам просто необходимо join таблицы вместе и использовать один group by с having:

select c.course_id, c.name 
from course c 
    join studies s on c.course_id = s.course_id 
group by c.course_id, c.name 
having count(s.course_id) > 1 
+0

Он тоже работает, но как он находится в реляционной алгебре? – AlienTed

+0

и что с 'c' и 's', что это? – AlienTed