gpt4 book ai didi

sql - 女士 Access 排名前三名

转载 作者:行者123 更新时间:2023-12-02 09:26:32 25 4
gpt4 key购买 nike

在过去的几个小时里,我一直致力于如何找到并排名前三名的学生并陈述他们的位置。因此,有一个表,其中包含学生姓名及其分数字段。我想使用查询找到得分最高的前三名学生并分配他们的位置,即第一、第二和第三。我该怎么做?

编辑:我还需要找到特定类(class)中的尖子生,例如五年级。此信息也位于同一表的不同字段中。

最佳答案

您可以使用相关子查询来分配排名:

select top 3 m.*,
(select 1 + count(*)
from marks m2
where m2.mark > m.mark
) as ranking
from marks m
order by mark desc;

请注意,这所执行的排名相当于 ANSI SQL 中的 rank() 函数。因此,如果第一名出现三个并列,则排名为 1、1、1、4。

进行密集排名将使用 count(distinct),MS Access 不支持该功能。也许这有效:

select top 3 m.*,
(select 1 + count(*)
from (select distinct mark
from marks m2
where m2.mark > m.mark
) as m
) as ranking
from marks m
order by mark desc;

关于sql - 女士 Access 排名前三名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37459770/

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