写一个查询以显示职员姓名、处理的科目名称、该科目的最高分数列表。将最大标记的别名指定为 max_mark
. 根据降序中的最大标记对结果排序。
这是模式图。
这是我试过的代码。
select distinct
staff_name,
subject_name,
max(value) over (partition by sb.staff_id) as max_mark
from subject sb
inner join staff st
on st.staff_id=sb.staff_id
inner join mark m
on m.subject_id=sb.subject_id
order by max_mark desc;
我能够通过一个测试用例,但我不能通过第二个测试用例,我不知道第二个测试用例是什么,而且我也没有得到我在我上面的代码中所做的错误。有没有任何方法得到这个问题的解决方案。
3条答案
按热度按时间vsmadaxz1#
似乎您正在查找以下查询:
yh2wf1be2#
我认为你想要:
bmp9r5qi3#
可以使用窗口函数:
你也可以用你的方法(
select distinct
具有窗口功能)。但你必须面对subject_name
: