gpt4 book ai didi

sql - 让对更多主题感兴趣的人-Sql Server

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

对这个主题感到抱歉,因为它不是很明确。我有 2 个表,一个存储个人数据,一个存储主题数据以及感兴趣的人。两个表如下所示

Id  Name
1 Imad
2 Sumeet
3 Suresh
4 Navin

主题

Id  PId Subject
1 1 DC
2 1 DS
3 3 DS
4 4 CA

PId 是一个人的 Id

我需要让所有对最大数量的科目感兴趣的学生,例如这里的 Imad。

这是我的问题

With c as
(
select Pid, count(Id) as 'Total' from subjects group by Pid
)
select Pid into #Temp from c where Total = (Select Max(Total) from c)
select * from Person where Id in (Select Pid from #Temp)

它给了我想要的输出,但是每当在面试中问到这种类型的问题时,我从来没有得到面试官的良好回应,因为他们总是期待更好的解决方案。我对自己的 SQL 技能没有信心,这就是为什么我认为必须有更有效的解决方案,因此我将其发布在这里。谢谢

最佳答案

简单地对数据进行排序并获得最上面的一条记录(这意味着如果一些学生的计数相等,他们都会进入结果):

select top 1 with ties p.Id, p.Name
from Subjects s
join Person p on s.PId = p.Id
group by p.Id, p.Name,
order by count(*) desc

关于sql - 让对更多主题感兴趣的人-Sql Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844804/

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