gpt4 book ai didi

sql - 最高效的 SQL 查询

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:39 24 4
gpt4 key购买 nike

我有 2 个表:

T1 {
id: string;
school: string
}

T2 { 
school_id: string;
student_id: string;
tuition_fee: double
}

这2张表由T1.id和T2.school_id关联。T1 包含每个学校的信息。它相对较小。 T2 包含每个学生的学费信息。它可能很大(数百万条记录)。

编辑:

现在,我想找出哪 3 所学校从学生那里收取的学费最多。 假设两所学校向其所有学生收取的总学费不可能相同。我的解决方案如下:

  1. 按 school_id 对 T2 中的记录进行分组;
  2. 计算每组tuition_fee的总和;
  3. 按总和降序对组进行排序;
  4. 获得前 3 名。

我的问题是:

  1. 有什么更好的方法吗?
  2. 执行此操作最有效的 SQL 是什么?
  3. 还有其他需要考虑的因素来提高速度吗?例如使用索引、 View 等。

最佳答案

如果您只想要 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 在哪里可以找到它)来查看如何提高性能,它会建议索引或其他提示。

这似乎不是一个很繁重的查询。

关于sql - 最高效的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34536018/

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