我有两张桌子:
T1 {
id: string;
school: string
}
和
T2 {
school_id: string;
student_id: string;
tuition_fee: double
}
这两个表由T1.id和T2.school_id相关联。 T1包含每所学校的信息。它相对较小。 T2包含每个学生的学费信息。它可能很大(数百万条记录)。
修改
现在,我想知道哪3所学校收取学生的大部分学费。 假设2所学校不可能从所有学生那里收取相同数量的学费。我的解决方案如下:
我的问题是:
答案 0 :(得分:2)
如果您只想要school_id和费用的总和,则可以选择:
SELECT TOP 3
SUM(tuition_fee) AS TOTAL_TUITION_FEE,
school_id
FROM T2
GROUP BY school_id
ORDER BY TOTAL_TUITION_FEE DESC
如果你使用SQL服务器,你可以使用查询分析器(some info在哪里找到它)来了解如何提高性能,它建议索引或其他提示。
似乎不是一个非常沉重的查询。