作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
类表有 class_id
和 class_name
列,其值为 ff:
class_id | class_Name
1 | Algebra
2 | History
3 | PE
学生表有 student_id
和 student_name
列:
student_id | student_name
1 | Kylo Ren
2 | Rey
第三个表是两个表的联结表,具有以下列 class_id
和 student_id
class_id | student_id
1 | 1
1 | 2
2 | 1
3 | 2
如何找到每个科目的注册学生人数?
输出应该是这样的
Class Name | Number of Students
Algebra | 2
History | 1
PE | 1
然后编辑查询,让它只显示类(class)名称和大于 2 的学生人数
谢谢!
最佳答案
按学生聚合联结表,然后断言匹配的学生拥有所有类(class):
WITH cte AS (
SELECT student_id
FROM junction
GROUP BY student_id
HAVING COUNT(class_id) = (SELECT COUNT(*) FROM class)
)
SELECF COUNT(*) AS num_all_classes FROM cte;
关于SQL 查询以查找在某个科目注册的学生总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47902863/
条件是 一科多师关系,即一科可以由多位老师教授,但一名老师只能教授一科 多学生与多科目的关系,即许多学生可以选修一门共同科目,而一个学生可以选修多门科目。 多个学生与多个批处理的关系。 不能同时保存两
我是一名优秀的程序员,十分优秀!