有三個表:
Students
表記錄了每個學生的 ID 和姓名。Subjects
表記錄了學校中的所有科目名稱。Examinations
表記錄了每個學生參加的考試。請使用MS SQL Server查詢每個學生參加每門考試的次數。結果表需要按 student_id
和 subject_name
排序。
結果表應包含以下欄位:
student_id
: 學生的 ID。student_name
: 學生的姓名。subject_name
: 科目名稱。attended_exams
: 學生參加該科目考試的次數。我們可以通過 LEFT JOIN
把學生表與科目表連接,然後再與考試表連接來計算每個學生在每個科目中參加考試的次數。
SELECT s.student_id, s.student_name, sub.subject_name,
COUNT(e.subject_name) AS attended_exams
FROM Students s
CROSS JOIN Subjects sub
LEFT JOIN Examinations e
ON s.student_id = e.student_id AND sub.subject_name = e.subject_name
GROUP BY s.student_id, s.student_name, sub.subject_name
ORDER BY s.student_id, sub.subject_name;
CROSS JOIN
來生成所有學生和科目組合。LEFT JOIN
把 Examinations
表中的考試數據連接進來。COUNT
函數來計算每個學生在每個科目參加考試的次數。GROUP BY
對每個學生和科目進行分組,並按學生 ID 和科目名稱排序。謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!