news 2026/4/16 14:36:08

1280. 学生们参加各科测试的次数 - 力扣(LeetCode)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1280. 学生们参加各科测试的次数 - 力扣(LeetCode)

代码

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;

🔧 分步解释:

1.CROSS JOIN Students 和 Subjects
  • 这一步就是“配对所有学生和所有科目”。
  • 比如 Alice + Math、Alice + Physics、Bob + Math……一个不漏。
  • ✅ 这样就保证了“即使没考试,也要列出”。
2.LEFT JOIN Examinations
  • 把考试记录“贴”到上面的配对上。
  • 如果某学生某科有考试记录,就加上;如果没有,那一行的考试信息就是NULL
  • LEFT JOIN是为了保留左边的所有配对(不会丢掉没考试的组合)。
3.COUNT(e.subject_name)
  • 统计每个学生-科目组合实际考了多少次
  • 为什么不是COUNT(*)
    因为COUNT(*)会把“没考试”的行也数成 1(它数的是“行数”)。
    COUNT(e.subject_name)只数非空值——没考试时e.subject_nameNULL,就不计入,结果就是 0。✅
4.GROUP BY
  • 因为我们用了COUNT()(聚合函数),所以必须按学生+科目分组。
  • 否则数据库不知道“到底要统计谁的考试次数”。
5.ORDER BY
  • 题目要求按student_idsubject_name排序,所以加上这句让结果整齐。

结果

解题步骤:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 19:59:36

剖析CVE-2009-0556:一个“复活”的PPT内存破坏漏洞

CVE-2009-0556:一个拒绝消亡的2009年PowerPoint漏洞 2009年,某中心恶意软件团队的研究人员记录了一个存在于特定版本Windows PowerPoint(Windows PowerPoint 2000 SP3、2002 SP3、2003 SP3以及Microsoft Office 2004 for Mac中的PowerPoint&…

作者头像 李华
网站建设 2026/4/16 12:02:14

<span class=“js_title_inner“>2025年跨境电商行业年度报告</span>

导读:2025年,跨境电商行业进入“规则重构与价值升级”的双变期。政策层面,国内外税务与监管新规推动行业合规化加速;市场层面,美国增速放缓,欧洲作为“第二选择”崛起;平台层面,Temu…

作者头像 李华
网站建设 2026/4/15 19:58:23

计算机毕业设计之springboot基于Java的在线考试系统设计与实现

时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,在线考试系统当然不能排除在外。在线考试系统是在实际应用和软件工程的开发原理之上,运用java语言,JSP技术以及SpringBoo…

作者头像 李华
网站建设 2026/4/16 12:05:55

蚂蚁开源世界模型LingBot-World:具有分钟级记忆的实时世界模拟器

蚂蚁集团旗下的具身智能公司灵波科技开源了两大重磅模型。 具身智能模型,最强开源机器人大脑!两万小时真机数据开启物理AI缩放定律。 以及强大的世界模型LingBot-World。 LingBot-World将视频生成模型进化成了可交互世界模拟器,让AI学会了理…

作者头像 李华