gpt4 book ai didi

SQL 查找平均得分最高的 worker 姓名

转载 作者:行者123 更新时间:2023-12-03 23:07:10 27 4
gpt4 key购买 nike

我正在尝试显示平均分最高的 worker 的姓名。我的第一个表是 worker 表并存储 worker_id 和 worker_name。第二张表是测试表,存储了参加测试的worker_id、test_id和分数。

我的目标是能够打印出在所有测试中平均分最高的 worker 的姓名。这是我目前所拥有的:

    select max(avg_mark) as max_avg
from (
select worker_name, avg(mark) as avg_mark
from worker join test worker.worker_id = test.worker_id
group by worker_name
order by avg(mark) desc);

但是,这只会返回最大平均分的 VALUE,而不是获得该平均分的 worker 的姓名。如果我将 worker_name 添加到第一个 select 语句,并在底部添加一个由 worker_name 组成的组,那么所有 worker 都会返回他们的平均值!

最佳答案

一种选择是使用 CTE,然后使用最大窗口函数对其进行查询。

with cte as
(
select worker_name, avg(mark) as avg_mark
from worker join test worker.worker_id = test.worker_id
group by worker_name
)
select t.*
from
(
select worker_name, avg_mark, max(avg_mark) over (partition by worker_name) max_mark
from cte
) t
where t.avg_mark = t.max_mark

关于SQL 查找平均得分最高的 worker 姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40847211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com