gpt4 book ai didi

mysql - 按 3 个表的 JOIN 的 AVG 标记进行 SQL 分组

转载 作者:行者123 更新时间:2023-11-29 06:50:44 25 4
gpt4 key购买 nike

我有 3 张 table :

学生:

id: int AUTO_INCREMENT
first_name: char(30)
last_name: char(30)

标记:

id: int AUTO_INCREMENT
mark: int

主题:

id: int AUTO_INCREMENT
name: char(30)
stud_id int
mark_id int

其中所有列中的 id 是主键,Subject 表中的 stud_id int、mark_id int 是辅助键。

如何获得所有数学平均分高于 8.5(满分 10)的学生的名字、姓氏和平均分?

这里开始写查询,但是不知道如何使用AVG函数、别名和Group By函数

SELECT student.first, student.last, ??? as avg_mark 
FROM subject
JOIN student on student.ID = subject.stud_id
JOIN marks on marks.id = subject.mark_id
Where ???

最佳答案

两者有一个avg函数(据我所知,它是由ANSI SQL标准定义的)。请注意,它是一个聚合函数,因此您不能使用 where 子句对其应用条件 - 您需要使用 having 子句:

SELECT   student.first_name, student.last_name, AVG(mark) avg_mark 
FROM subject
JOIN student on student.ID = subject.stud_id
JOIN marks on marks.id = subject.mark_id
GROUP BY student.first, student.last
HAVING AVG(mark) > 8.5

关于mysql - 按 3 个表的 JOIN 的 AVG 标记进行 SQL 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47621683/

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