LeetCode(数据库)- 学生们参加各科测试的次数

偏执的太偏执、 2022-09-10 13:20 216阅读 0赞

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码

  1. -- 解决方案(1)
  2. select
  3. ss.student_id as student_id,
  4. ss.student_name as student_name,
  5. ss.subject_name as subject_name,
  6. ifnull(e1.attended_exams, 0) as attended_exams
  7. from
  8. (
  9. select
  10. *
  11. from `Students` as s1
  12. cross join `Subjects` as s2
  13. ) as ss
  14. left join
  15. (
  16. select
  17. student_id,
  18. subject_name,
  19. count(student_id) as attended_exams
  20. from `Examinations`
  21. group by student_id,subject_name
  22. ) as e1
  23. on ss.student_id = e1.student_id
  24. and ss.subject_name = e1.subject_name
  25. order by ss.student_id, ss.subject_name
  26. -- 解决方案(2)
  27. SELECT s.student_id, student_name, sub.subject_name, COUNT(e.subject_name) attended_exams
  28. FROM Subjects sub JOIN Students s LEFT JOIN Examinations e ON e.subject_name = sub.subject_name AND e.student_id = s.student_id
  29. GROUP BY s.student_id, sub.subject_name
  30. ORDER BY s.student_id, sub.subject_name

发表评论

表情:
评论列表 (有 0 条评论,216人围观)

还没有评论,来说两句吧...

相关阅读

    相关 测试次数

    x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出