LC 速查

SQL 50索引 › A2 Basic Joins 基础 JOIN

LC 1280学生们参加各科测试的次数Students and Examinations 简单

Students、Subjects、Examinations 三表;对每位学生与每门科目的组合统计参加测试的次数(没参加为 0),按学生 id、科目名排序。

思路 Students CROSS JOIN Subjects 补齐全组合,再 LEFT JOIN 计数。

SELECT S.student_id, S.student_name,
       U.subject_name,
       COUNT(E.subject_name) AS attended_exams
FROM Students S
CROSS JOIN Subjects U
LEFT JOIN Examinations E
  ON E.student_id = S.student_id
 AND E.subject_name = U.subject_name
GROUP BY S.student_id, S.student_name, U.subject_name
ORDER BY S.student_id, U.subject_name;

数据表:Students,Subjects,Examinations · 关键字:对每位学生与每门科目的组合统计参加测试的次数(没参加为 0),按学生 id、科目名排序

← 上一题 员工奖金至少有5名直接下属的经理 下一题 →