【sql:练习题2】查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

题目:查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

这里提到平均分 ,要用到avg  按照学生分组,再求平均分,这里应该是考察group by 与聚合函数的使用  大于60分应该是按照分组后筛选的结果要用having

group by 与聚合函数  having 的使用 上篇博客已经写过

于是写的sql于下:

SELECT studentid,AVG(score) AS a FROM student_score GROUP BY studentid HAVING a>60

要查询完整的学生信息,应该是要与学生表student 进行join:

完整的sql:

SELECT b.id, b.stdentname,a FROM student AS b JOIN
      (SELECT studentid,AVG(score) AS a FROM student_score GROUP BY studentid HAVING a>60)c
ON b.id = c.studentid

查询结果:

思考一个问题:为啥这里的join  没有用到left join   right join 呢?

原文地址:https://www.cnblogs.com/yuanyuan2017/p/11322831.html

时间: 2024-08-26 17:13:05

【sql:练习题2】查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩的相关文章

50个查询系列-第9个查询:查询所有课程成绩小于60分的同学的学号、姓名;

第一想法: 从分数表里面把小于60的学生id都查出来. SELECT tblstudent.StuId,tblstudent.StuName FROM tblstudent WHERE (SELECT  tblscore.Score FROM tblscore WHERE tblstudent.StuId=tblscore.StuId AND tblscore.Score<60 ) 然后报错: Subquery returns more than 1 row 是的呀. SELECT  tblsc

【sql: 联系题26 ,27】查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩,查询课程名称为「数学」,且分数低于 60 的学生姓名和分数

题目:26:查询平均成绩大于等于 85 的所有学生的学号.姓名和平均成绩 分析:这个应该是根据student 进行分组 group by 再根据 having >= 85 进行过滤,然后在关联student 信息表,拿到学生的基本信息 SELECT student.id, student.stdentname,AVG(student_score.score) AS a FROM student_score, studentWHERE student.id = student_score.stud

查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩

-- 查询平均成绩大于等于 85 的所有学生的学号.姓名和平均成绩 SELECT s.Sid,s.Sname,avg FROM student AS s JOIN (SELECT Sid, AVG(score) AS avg FROM sc GROUP BY Sid HAVING avg >=85) AS k ON s.Sid = k.Sid; 原文地址:https://www.cnblogs.com/zunfengliu/p/12199051.html

50道sql练习题和答案

最近两年的工作没有写过多少SQL,感觉水平下降十分严重,网上找了50道练习题学习和复习 原文地址:50道SQL练习题及答案与详细分析 1.0数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教

接近50道经典SQL练习题,附建表SQL解题SQL

说明 本文章整理了47道常见sql联系题,包括建表语句,表结构,习题列表,解题答案都涵盖在本文章内.文末提供了所用SQL脚本下载链接.所有解题答案都是本人自己写的,广大读者如果在阅读使用中,有任何问题欢迎留言,对我写的有问题的,欢迎指正,谢谢. 数据库:oracle11g 表结构 可使用plsql-工具-导入表,导入如下sql脚本. 表结构与数据.sql 学生表 Student(SId,Sname,Sage,Ssex)SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别

sql 练习题(1)

-- 1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 -- mark一下,"一个表当两个表用" SELECT a.* ,b.s_score AS 01_score,c.s_score AS 02_score FROM student a JOIN score b ON a.s_id=b.s_id AND b.c_id='01' LEFT JOIN score c ON a.s_id=c.s_id AND c.c_id='02' O

另一套Oracle SQL练习题

题干: 1 create table student( 2 sno varchar2(10) primary key, 3 sname varchar2(20), 4 sage number(2), 5 ssex varchar2(5) 6 ); 7 create table teacher( 8 tno varchar2(10) primary key, 9 tname varchar2(20) 10 ); 11 create table course( 12 cno varchar2(10)

SQL 牛刀小试 1 —— 查询操作

#创建数据库create database ST CHARACTER set utf8;#创建用户create user ST identified by '19980510';#授权用户操作该数据库grant all on ST.* to ST; ----------------#创建学生表create table Student(Sno char(9) primary key ,Sname char(20) not null,Ssex char(2),Sage smallint,Sdept

50道SQL练习题及答案与详细分析!!!

以前在学校还没有很认真地意识到,现在到了企业才发现sql是那么的重要,看到网上有很多的sql 练习题,特地拿来练练手! 数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname