gpt4 book ai didi

mysql - 有没有办法避免在 MySQL 中多次写入内联 View

转载 作者:行者123 更新时间:2023-11-29 00:25:54 24 4
gpt4 key购买 nike

考虑一个 Student 表和一个 Grades 表。成绩表包含学生参加的所有类(class)的成绩。我想找到平均成绩最高的学生。

我会使用 CTE 来解决这个问题,但 MySQL 似乎不提供 CTE。我想写一个查询来找到具有最大平均数的学生。成绩,也避免编写查询,获得平均。所有学生的成绩,不止一次。

一个不起作用的查询如下(这可能会让我更清楚我想要实现的目标):

select temp.st_name 
from (select st1.student_name st_name, AVG(grade) avg_grade from Student st1, Grades grd1 where st1.student_id = grd1 .student_id group by st1.student_id, st1.sudent_name) temp
where temp.avg_grade = (select MAX(temp.avg_grade) from temp)

上面的查询给出了错误:表临时不存在。

有没有其他方法我可以找到具有最大 avg 的学生?成绩,避免写两次内联 View 语句?

谢谢!

最佳答案

我相信您可以将 ORDER BY 与 LIMIT 一起使用,但我从未编写过任何 MYSQL,所以我可能是错的 ;)

SELECT
st1.student_name st_name,
AVG(grade) avg_grade
FROM Student st1, Grades grd1
WHERE st1.student_id = grd1 .student_id
GROUP BY
st1.student_id,
st1.sudent_name
ORDER BY avg_grade DESC
LIMIT 1;

注意:我没有更改您的初始语句,但您应该在 FROM tbl1、tbl2 上使用 JOIN 语法

关于mysql - 有没有办法避免在 MySQL 中多次写入内联 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928373/

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