复杂的select语句

时间:2015-06-25 10:14:13

标签: mysql sql database

我必须编写一个非常复杂的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;

你能帮我解决一下吗?谢谢!

2 个答案:

答案 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)

要确定其他字段,您需要加入ScolarshipsStudents表。

示例连接:

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。您可能还想查看可帮助您计算平均分数的聚合函数。