有学生表student,成绩表sc,查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩,
时间: 2024-06-03 18:09:59 浏览: 102
可以使用以下SQL语句来查询:
SELECT student.id, student.name, AVG(sc.score) as avg_score
FROM student
LEFT JOIN sc ON student.id=sc.student_id
GROUP BY student.id, student.name
HAVING avg_score>=60;
这条SQL语句将学生表和成绩表按照学生编号连接起来,然后按照学生编号和学生姓名分组,计算每个学生的平均成绩,最后筛选出平均成绩大于等于60分的同学,返回学生编号、学生姓名和平均成绩这三个字段。
相关问题
hive sql 学生表里s_id s_name 成绩表里有s_id score ,现在需要查询平均成绩大于等于60分的学生编号和学生姓名和平均成绩
可以使用如下的Hive SQL语句:
```
SELECT s.s_id, s.s_name, AVG(sc.score) AS avg_score
FROM student s
JOIN score sc ON s.s_id = sc.s_id
GROUP BY s.s_id, s.s_name
HAVING AVG(sc.score) >= 60;
```
该语句使用了INNER JOIN将学生表和成绩表连接起来,然后使用GROUP BY对学生编号和姓名进行分组,最后使用HAVING筛选出平均成绩大于等于60分的学生。使用AVG函数计算平均成绩,并将其命名为avg_score。
用mysql语句通过 student sc查询平均成绩大于学号'S03'学生平均成绩的所有学生的姓名,student表中无分数,sc表中有
分数和学号的对应关系。
答案应该是:
SELECT s.name FROM student s, sc c WHERE c.s_id = s.s_id AND c.grade > (SELECT AVG(c2.grade) FROM sc c2 WHERE c2.s_id = 'S03');
阅读全文