[英]SQL Query to find total number of students enrolled in a subject
類表具有帶有ff值的class_id
和class_name
列:
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
然后編輯查詢,以便它只顯示班級名稱和大於2的學生人數
謝謝!
按學生匯總聯結表,然后斷言匹配的學生擁有所有課程:
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;
也許我弄錯了......
SELECT
c.class_name "Class Name",
count(distinct j.student_id) "Number of Students"
FROM
class c
LEFT JOIN junction j ON j.class_id = c.class_id
GROUP BY
1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.