gpt4 book ai didi

sql - 两个表连接和 Group By 一起工作时出现问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:17 24 4
gpt4 key购买 nike

使用 Oracle SQL 开发人员,我目前正在尝试解决这个问题:
提供一份按字母顺序排列的学生名单(学生姓氏后名字),其总平均成绩为 93 分或更高。姓名应为一列,姓氏在前,并按姓氏和名字排序。

这是我的查询,它返回:“不是 Group By 表达式”

SELECT Student.Last_Name || ', ' || Student.First_Name AS "Student Name"
FROM Student, Grade
WHERE Student.Student_Id = Grade.Student_Id
GROUP BY Grade.Student_Id
HAVING AVG(Grade.Numeric_Grade) > 92
ORDER BY Last_Name;

我对使用 group by 和两个表的连接有点困惑,我希望一些更有经验的人可以看看它。谢谢你的时间。

最佳答案

首先,学习使用正确、明确的 JOIN 语法。其次,SELECT 中未聚合的列需要与 GROUP BY 列相匹配。三、使用表别名:

SELECT s.Last_Name || ', ' || s.First_Name AS "Student Name"
FROM Student s JOIN
Grade g
ON s.Student_Id = g.Student_Id
GROUP BY s.Last_Name || ', ' || s.First_Name
HAVING AVG(g.Numeric_Grade) > 92
ORDER BY s.Last_Name || ', ' || s.First_Name;

如果两个学生同名,您可能还想在 GROUP BY 中包含 s.Student_Id

关于sql - 两个表连接和 Group By 一起工作时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48918467/

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