【问题标题】:SQL to Relation AlgebraSQL 到关系代数
【发布时间】:2015-12-11 02:15:10
【问题描述】:

我怎样才能在关系代数中把它变白?我总是对那些 GROUP BY 和 HAVING COUNT 感到困惑......无法真正表达出来。

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;

【问题讨论】:

  • 如果您可以提供表格定义、示例数据和所需结果,这将更容易理解。您是否试图确定哪些研究与不止一门课程相关联?
  • 不,它必须显示至少有两个学生注册的课程名称

标签: sql oracle algebra relational-algebra


【解决方案1】:

如果我正确理解了您的评论,那么您只需将join 表格放在一起,并将group byhaving 一起使用:

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

【讨论】:

  • 'c' 和 's' 是什么,这些是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多