gpt4 book ai didi

sql查询发现最常出现的级别

转载 作者:行者123 更新时间:2023-12-02 07:03:14 26 4
gpt4 key购买 nike

我在 SQL Server 中有一个表 Student,其中包含以下列:

[ID], [Age], [Level] 

我想要查询返回出现在 Students 中的每个年龄值,并找到最常出现的级别值。例如,如果 18 岁的 'a' 级别学生多于 'b' 或 'c',它应该打印 (18, a) 对。

我是 SQL Server 的新手,我想要一个简单的嵌套查询答案。

最佳答案

您可以使用窗口函数来做到这一点:

select t.*
from (select age, level, count(*) as cnt,
row_number() over (partition by age order by count(*) desc) as seqnum
from student s
group by age, level
) t
where seqnum = 1;

内部查询聚合数据以计算每个年龄的级别数。 row_number() 为每个年龄枚举这些(partition by 从最大的开始)。 where 子句然后选择最高值。

在平局的情况下,这只返回其中一个值。如果您想要所有这些,请使用 rank() 而不是 row_number()

关于sql查询发现最常出现的级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874019/

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