You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修正Oracle SQL嵌套子查询,输出指定两门课程的最低分

问题解决:查询指定课程的最低分数

需求说明

需要编写Oracle SQL查询,展示“Software Engineering”和“Computer Programming”两门课程的名称及其最低分数,将最低分列命名为MIN_MARK,结果按课程名称降序排列。

原查询的错误点

原嵌套子查询在WHERE条件中使用AND同时匹配两个不同的课程名称,这会导致没有符合条件的数据(同一课程名称不可能同时等于两个不同值),因此无法输出两门课程的结果。

预期输出

subject_nameMIN_MARK
Computer Programming65
Software Engineering61

修正后的SQL语句

SELECT s.subject_name, MIN(m.value) AS MIN_MARK
FROM subject s
JOIN mark m ON s.subject_id = m.subject_id
WHERE LOWER(s.subject_name) IN ('software engineering', 'computer programming')
GROUP BY s.subject_name
ORDER BY s.subject_name DESC;

关键修正点说明

  • 用IN替代AND:IN可以匹配列表中的任意一个值,正确筛选出目标的两门课程
  • 大小写兼容:通过LOWER()函数统一转换字符串大小写,避免因数据中大小写不一致导致的匹配失效
  • 聚合与分组:使用MIN()计算最低分,配合GROUP BY s.subject_name确保按课程分组统计
  • 排序:ORDER BY s.subject_name DESC实现结果按课程名称降序排列

内容的提问来源于stack exchange,提问作者Pradyumna P Rao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:31:17