复制
收藏
提问
全网
50、现在有student表,course表,teacher表,score表,查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩,并对平均成绩进行四舍五入操作
5月前
理解问题50、现在有student表,course表,teacher表,score表,查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩,并对平均成绩进行四舍五入操作
已完成理解「50、现在有student表,course表,teacher表,score表,查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩,并对平均成绩进行四舍五入操作」
展开阅读网页
要查询平均成绩大于等于85的所有学生的学号、姓名和平均成绩,并对平均成绩进行四舍五入操作,我们可以参考以下步骤:
-
确定需要连接的表:我们需要连接
student
表和score
表,因为学生信息和成绩信息分别存储在这两个表中7。 -
分组计算平均成绩:通过
GROUP BY
语句,我们可以按照学生的学号(s_id
)进行分组,然后计算每个学生的平均成绩37。 -
过滤平均成绩:使用
HAVING
语句来过滤出平均成绩大于等于85的学生3。 -
四舍五入操作:对计算出的平均成绩使用四舍五入函数进行处理。在SQL中,可以使用
ROUND()
函数来实现四舍五入1。 -
选择需要的列:最后,我们需要选择学生的学号(
s_id
)、姓名(s_name
)和四舍五入后的平均成绩。
根据以上步骤,我们可以构建如下SQL查询语句:
SELECT
st.s_id,
st.s_name,
ROUND(AVG(sc.score), 2) AS avg_score
FROM
student AS st
JOIN
score AS sc ON st.s_id = sc.s_id
GROUP BY
st.s_id, st.s_name
HAVING
AVG(sc.score) >= 85;
这个查询语句首先通过JOIN
操作连接student
表和score
表,然后使用GROUP BY
对每个学生的成绩进行分组并计算平均值。HAVING
子句确保只选择那些平均成绩大于等于85的学生。最后,ROUND(AVG(sc.score), 2)
将平均成绩四舍五入到小数点后两位,并将其作为avg_score
列返回1。37。
更专业一些
转笔记
专业
50、现在有student表,course表,teacher表,score表,查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩,并对平均成绩进行四舍五入操作不在提醒