首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设计一个高性能的数据库查询来执行以下操作?

如何设计一个高性能的数据库查询来执行以下操作?
EN

Database Administration用户
提问于 2021-03-24 17:42:55
回答 1查看 223关注 0票数 -1

给出3个表,即学生(id、名称)、课程(id、name)、年级(id、course_id、student_id、年级),根据平均年级按平均成绩排序,如果多名学生有相同的平均成绩,按姓名按顺序按顺序进行排序。您的查询应该输出具有以下列(name,average_grade)的表。

我写了这个查询

代码语言:javascript
复制
SELECT 
    s.name AS name, AVG(g.grade) AS average_grade
FROM
    grades g
        JOIN
    students s ON g.student_id = s.id
GROUP BY g.student_id , s.name
ORDER BY AVG(g.grade) DESC , s.name
LIMIT 100;

但是它已经死了,因为S太慢了,所以没有改进它?

EN

回答 1

Database Administration用户

发布于 2021-03-24 19:32:13

能做这样的事

选择前100 S.名字为学生姓名,AVG(G.等级)为平均等级

代码语言:javascript
复制
 FROM [grades] [g]

代码语言:javascript
复制
 join [students] [s] on

代码语言:javascript
复制
       [g].[student\_id] = [s].[id]

代码语言:javascript
复制
  GROUP BY [g].[student\_id],[s].[name]

代码语言:javascript
复制
  ORDER BY AVG([g].[grade]) desc,[s].[name] 
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/287625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档