力扣-高频 SQL 50 题(基础版)-1280. 学生们参加各科测试的次数
一、完整建表 SQLMySQL 语法二、需求查询出每个学生参加每一门科目测试的次数结果按student_id和subject_name排序三、 思路1.插入数据构造表格2.写题表层视觉迷惑点下面这会是大部分人第一次的答案(相似)一定会觉得第二张Subjects表是多余的没必要关联因为Subjects表的仅有的数据Subjects_name刚好第三个表也有所以大部分人一定会在join联合时直接关联Students表Examinations表而舍弃Subjects表# Write your MySQL query statement below select s.student_id,s.student_name,e.subject_name,count(subject_name) attended_exams from Students s join Examinations e on e.student_ids.student_id group by s.student_id,s.student_name,e.subject_name order by s.student_id asc,s.student_name asc展示结果(部分正确)底层逻辑漏洞核心INNER JOIN Students Examinations只会保留有考试记录的「学生 科目」组合学生 Bob 没考过 Physics 物理 → 这条组合直接从结果里消失无法显示次数 0学生 Alex 一门考试都没参加 → 他的 3 门科目全部消失输出里完全看不到 Alex 题目硬性要求每个学生、每一门学校开设科目都要展示没参加考试次数写 0。想要拿到「全部学生 × 全部科目」完整清单必须借助Subjects全科目表做笛卡尔积Subjects 表真实作用存储学校所有开设课程全集不受学生考试行为影响通过 join 和学生表组合强制生成「每个学生匹配全部 3 门科目」的完整行后续再LEFT JOIN考试记录没匹配到考试的行考试字段自动为 NULLCOUNT 统计自动算出 0 次保证输出结果和题目「预期结果」完全一致不会丢失缺考科目、零考试学生。标准满分正确代码# Write your MySQL query statement below SELECT s.student_id, s.student_name, sub.subject_name, COUNT(e.subject_name) AS attended_exams FROM Students s -- 第一步交叉连接学生全部科目生成完整笛卡尔积核心依赖Subjects表 CROSS JOIN Subjects sub -- 第二步左连接考试记录保留所有学生科目无考试填充NULL 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 ASC, sub.subject_name ASC;同类题型通用解题模板总结笔记举一反三题型特征需要展示「所有 A × 所有 B」无匹配数据显示 0必须准备一张全集维度表本题就是 Subjects 科目全集表JOIN主表 × 全集表生成完整组合LEFT JOIN业务记录表本题 ExaminationsCOUNT (业务表字段) 实现无匹配时计数 0GROUP BY 全部非聚合字段ORDER BY 按题目要求排序同类练习题举例统计每个门店每种商品的销量没卖出过显示 0统计每个员工每月考勤天数当月无考勤显示 0核心思路和本题完全一致都需要一张全集维度表做交叉连接拓展如果题目只给Students和Examinations两张表没有专门存储全部科目的表怎么办os我是面试官就这样出题结合生活场景比如大学期末-每场考试都必定至少有一个人参加不存在有课程没有学生参加这个就含蓄地表示Examinations表里拥有原先Subjects里所有的科目这样大学生就会困惑许久核心思路用子查询SELECT DISTINCT subject_name FROM Examinations虚拟生成「科目全集临时集合」替代原本的Subjects表再和学生表交叉连接。完整可运行 SQLSELECT s.student_id, s.student_name, sub.subject_name, COUNT(e.subject_name) AS attended_exams FROM Students s -- 虚拟科目表从考试记录里去重拿到全部存在过的科目 JOIN ( SELECT DISTINCT subject_name FROM Examinations ) AS sub(subject_name) 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 ASC, sub.subject_name ASC;优缺点✅ 优点不需要物理Subjects表仅靠两张业务表完成需求❌ 缺点如果存在一门全校开设、但从来没有任何学生考过的科目这门课会直接丢失无法展示适用场景题目明确说明所有学校开设的科目都至少有一名学生参加过考试

相关新闻

AI赋能非技术行业实战:我用DeepSeek+混元整理了2026年河南省高考志愿填报完整指南

AI赋能非技术行业实战:我用DeepSeek+混元整理了2026年河南省高考志愿填报完整指南

AI赋能非技术行业实战:我用DeepSeek混元整理了2026年河南省高考志愿填报完整指南 【阅读提示】​ 本文摘要:高考志愿填报是典型的"数据密集型决策"——河南作为2026年全国最后落地"312"新高考的考生大省,统考规模达130…

2026/7/4 3:33:10阅读更多 →
下载 | Windows Server 2016最新纯净版ISO映像!(集成6月更新、标准版、数据中心版、14393.9234)

下载 | Windows Server 2016最新纯净版ISO映像!(集成6月更新、标准版、数据中心版、14393.9234)

⏩ 资源A069_Windows_Server_2016系统映像🔶 Windows Server 2016原版ISO映像,6月更新版已放出。在微软原版映像的基础上,集成了每月累计更新,系统完整纯净无精简。映像内部包含了标准版和数据中心版,可选择无GUI界面版…

2026/7/4 3:33:10阅读更多 →
(论文速读)基于扩散模型潜变量的旋转机械健康监测与早期故障检测方法

(论文速读)基于扩散模型潜变量的旋转机械健康监测与早期故障检测方法

论文题目:A health monitoring and early fault detection method of rotating machines based on latent variables of diffusion model(基于扩散模型潜变量的旋转机械健康监测与早期故障检测方法)期刊:Mechanical Systems and S…

2026/7/4 3:33:10阅读更多 →
CANN过程能力指标测试

CANN过程能力指标测试

PidProcessCapabilityMetrics 测试报告 【免费下载链接】mat-chem-sim-pred 面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理数据"双轮驱动的领域计算层,推动AI for Science在材料化学领域的深度应用。 项目…

2026/7/4 5:28:24阅读更多 →
医生做科研的最大悖论:临床忙得没时间看文献,但晋升又逼着你发论文——谁来解决这个死循环?

医生做科研的最大悖论:临床忙得没时间看文献,但晋升又逼着你发论文——谁来解决这个死循环?

打开三甲医院医生的日常,永远逃不开一道无解悖论:手握海量临床病例、具备完整研究数据,有申报课题的资质与经费,可门诊、手术、查房、急诊把时间撕成碎片,整块研读文献、打磨论文的时间几乎为零。职称晋升、科室评优、…

2026/7/4 5:28:24阅读更多 →
3分钟掌握音乐歌词批量下载:163MusicLyrics终极使用指南

3分钟掌握音乐歌词批量下载:163MusicLyrics终极使用指南

3分钟掌握音乐歌词批量下载:163MusicLyrics终极使用指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到合适的音乐歌词而烦恼吗?你是…

2026/7/4 5:28:24阅读更多 →
与老大的交谈——估算项目时间

与老大的交谈——估算项目时间

上一次我们聊到 估算项目的时间进度! ,感谢很多博友的建议。我也向我们老大咨询了一下,他给了我很多宝贵的意见。 以下是我跟老大的一些交谈,希望对大家有所帮助。 把握三个点 以下是老大给我的建议,大家可以考虑一下。 这三个点中…

2026/7/4 5:28:24阅读更多 →
Mermaid在线编辑器:5分钟创建专业图表,让技术文档制作变得简单高效

Mermaid在线编辑器:5分钟创建专业图表,让技术文档制作变得简单高效

Mermaid在线编辑器:5分钟创建专业图表,让技术文档制作变得简单高效 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending…

2026/7/4 5:28:24阅读更多 →
扩展ToastNotifications:创建自定义通知类型与显示模板的完整教程

扩展ToastNotifications:创建自定义通知类型与显示模板的完整教程

扩展ToastNotifications:创建自定义通知类型与显示模板的完整教程 【免费下载链接】ToastNotifications Toast notifications for WPF allows you to create and display rich notifications in WPF applications. Its highly configurable with set of built-in op…

2026/7/4 5:23:24阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/3 14:18:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/3 14:38:35阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

2026/7/4 0:02:48阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/4 1:16:56阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →