我必须编写一个非常复杂的select语句。 我的db:
Students
(student_id, name, group, year, specialization, scolarship_eval_score)
Scolarships
(scolarship_id, name, company, description, duration)
Applicants
(student_id, scolarship_id)
我需要回顾的是: 对于申请人数最多的所有奖学金,可以找到奖学金的名称,公司,申请人数和学生的平均数。分数。
我发现这很难做到。我是sql的初学者。到目前为止,我已经检索了每个奖学金申请人的数量,现在我应该找到最大值,并且该奖学金将返回其他必填字段。
这是我到目前为止所拥有的
select applicants.scolarship_id, count(applicants.scolarship_id)
from applicants
group by applicants.scolarship_id;
你能帮我解决一下吗?谢谢!
答案 0 :(得分:0)
您可以使用加入。像这样
select a.*,total from Scolarships a
join(
select applicants.scolarship_id, count(applicants.scolarship_id) as total
from applicants
group by applicants.scolarship_id) b on a.scolarship_id=b.scolarship_id
答案 1 :(得分:0)
要确定其他字段,您需要加入Scolarships
和Students
表。
示例连接:
SELECT *
FROM Applicants a
INNER JOIN Scolarships sc
ON a.scolarship_id = sc.scolarship_id
INNER JOIN Students st
ON a.students_id = st.students_id
然后我会留给你试图选择正确的Scolarship。您可能还想查看可帮助您计算平均分数的聚合函数。