【问题标题】:Students with Highest Mark [duplicate]最高分的学生[重复]
【发布时间】:2021-08-30 15:51:07
【问题描述】:

编写查询以显示学生姓名和他们在任何科目中的最高分,按姓名升序排列。为最大标记指定一个别名为 MAX_MARK。 我无法找到这个的逻辑。请帮助我。在 oracle SQL 中执行我在 SQL 中处于初级水平。

SELECT MAX(M.VALUE), S2.SUBJECT_ID,M.STUDENT_ID, S2.SUBJECT_NAME,S2.SUBJECT_CODE
from Mark M INNER JOIN SUBJECT S2 
ON M.SUBJECT_ID=S2.SUBJECT_ID group BY S2.SUBJECT_ID, 
S2.SUBJECT_CODE, S2.SUBJECT_NAME;

如果我在上述查询的帮助下获得了这个学生 ID,我会在这个查询中遇到错误,那么我可以使用子查询概念轻松解决这个问题。

【问题讨论】:

  • 到目前为止你尝试过什么?为什么这不起作用?
  • 我编辑了我的问题。看看

标签: sql oracle greatest-n-per-group


【解决方案1】:

那里不需要主题。问题要求每个学生的最高分数,无论科目如何:

SELECT s.Student_Name, MAX(M.VALUE) as MAX_MARK
from Student s
inner Join Mark M on m.student_id = s.student_id  
group by s.student_id, s.student_name 
order by s.student_name;

【讨论】:

    猜你喜欢
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多