gpt4 book ai didi

sql-server - SQL Server : Select entry based on frequency of entries in another table

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

所以我使用的是 SQL Server,我有两个类似于下面的表:


人员 ID 姓名
1 鲍勃
2 比尔
3 芭芭拉
4 邦妮

类(class)
人员 ID 类
1 数学
1 科学
2 数学
2 英语
3 科学
3 英语
4 英语
4 数学
4 科学

我需要编写一个查询,返回参加最多类(class)的人的姓名,并且仅返回姓名。因此,运行上述案例的查询后的唯一结果应该是名称“Bonnie”。

在平局的情况下,应返回多个名称。

我的尝试如下:

`Select People.Name
from People inner join Classes
On People.PersonID = Classes.PersonID
Group by People.Name
Having max(Classes.PersonID)`

最后一行在 SQL Server 中不起作用,我一生都无法弄清楚如何重新编写代码以使其正常工作。

有什么想法吗?

最佳答案

SELECT  TOP 1
name
FROM (
SELECT name,
COUNT(p.PersonID) as cnt
FROM People p
JOIN Classes c
ON p.PersonID = c.PersonID
GROUP BY name
) a
ORDER BY cnt DESC

关于sql-server - SQL Server : Select entry based on frequency of entries in another table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47100495/

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