一、sql 问题
两张表,一张学生表,一张成绩表
查询:三门功课全部及格的学生。
学生表:user
成绩表:score
id | user_id | subject | score |
1 | 1 | yuwen | 30 |
2 | 1 | shuxue | 80 |
3 | 1 | waiyu | 70 |
4 | 2 | yuwen | 70 |
5 | 2 | shuxue | 80 |
6 | 2 | waiyu | 90 |
7 | 3 | yuwen | 50 |
8 | 3 | shuxue | 60 |
9 | 3 | waiyu | 70 |
二、答案
select
b.name
from(
select
a.name,
count(*) as num
from(
select
u.name, u.id, s.score
from
score s
left join user u
on s.user_id = u.id
) a
where
a.score between 60 and 100
group by
a.name
) b
where
b.num = 3;
三、操作过程
create table user(
id bigint,
name varchar(30)
);
insert into user(id, name) value (1, 'zhangsan');
insert into user(id, name) value (2, 'lisi');
insert into user(id, name) value (3, 'wangwu');
create table score(
id bigint,
user_id bigint,
subject varchar(30),
score int
);
insert into score (id,user_id,subject,score) values (1,1, 'yuwen', 30);
insert into score (id,user_id,subject,score) values (2,1, 'shuxue', 80);
insert into score (id,user_id,subject,score) values (3,1, 'yingyu', 70);
insert into score (id,user_id,subject,score) values (4,2, 'yuwen', 70);
insert into score (id,user_id,subject,score) values (5,2, 'shuxue', 80);
insert into score (id,user_id,subject,score) values (6,2, 'yingyu', 90);
insert into score (id,user_id,subject,score) values (7,3, 'yuwen', 50);
insert into score (id,user_id,subject,score) values (8,3, 'shuxue', 60);
insert into score (id,user_id,subject,score) values (9,3, 'yingyu', 70);
mysql> select
b.name
from(
select
a.name,
count(*) as num
from(
select
u.name, u.id, s.score
from
score s
left join user u
on s.user_id = u.id
) a
where
a.score between 60 and 100
group by
a.name
) b
where
b.num = 3;
+------+
| name |
+------+
| lisi |
+------+
1 row in set (0.00 sec)
四、过程中遇到的问题记录
mysql> select
name
from(
select
name,
count(*) as num
from(
select
u.name, u.id, s.score
from
score s
left join user u
on s.user_id = u.id
)
where
score between 60 and 100
group by
name
)
where
num = 3;
ERROR 1248 (42000): Every derived table must have its own alias
五、拓展:查询成绩高于平均成绩的学生
SELECT name
FROM exam
WHERE score < ( SELECT AVG(score) FROM exam)
六、拓展:sql 书写格式
SELECT o.CustomerID,
SUM(UnitPrice * Quantity) AS TotalSales
FROM OrderDetails AS od
INNER JOIN Orders AS o ON od.OrderID = o.OrderID
GROUP BY o.CustomerID
-
转载请注明,
原文出处:http://lixh1986.iteye.com/blog/2400406
-
分享到:
相关推荐
SQL查询二 2 通过本实验使学生掌握多表查询、子查询以及基本数据操作 二、实验内容 使用实验一建立的银行贷款数据库和表,完成以下查询。 1-4是多表查询和子查询,5-11是数据操作 查询经济性质为“国营”的...
15) 查询每门课程不及格学生人数 16) 查询不及格课程超过3门的学生学号 17) 查询年龄在10到19岁之间的学生信息 18) 查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列 19) 查询选了...
--5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩--5.1、查询所有有成绩的SQL。--5.2、查询所有(包括有成绩和无成绩)的SQL。--6、查询"李"姓老师的数量 --7、查询学过"张三"老师授课的同学的信息...
--5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩 --5.1、查询所有有成绩的SQL。 --5.2、查询所有(包括有成绩和无成绩)的SQL。 --6、查询"李"姓老师的数量 --7、查询学过"张三"老师授课的同学...
(4) 查询选修了课程的学生姓名。 (5) 查询所有学生的信息和所选修的课程。 (6) 查询已被选修的课程的情况和所有课程的名字。 (7) 列出学生所有可能的选修情况。 (8) 查找计算机系的学生选修课程数大于2 的学生的...
1.查询全体学生的学号和姓名2....7.查询计算机系的学生姓名、年龄、系别 1 查询选修了数据库原理的学生姓名。 2 查询比计算机系所有学生年龄都大的学生信息。 3列出“张力”选修的所有课程的课名和成绩。
(5)编写程序,根据姓名查询teaching数据库中学生的基本信息和选课信息,学生姓名通过变量输入。对于不存在的学生姓名输入值,打印提示信息。6)编写程序,查询所有学生选修课程的期末成绩和对应等级,如果学生为...
这个Java项目是一个学生课绩管理系统,采用了JSP作为前端页面的展示技术,Servlet作为控制器处理用户请求,JavaBean作为业务逻辑处理的模型,同时使用SQL Server作为数据库存储学生和课程成绩的信息。该系统具有以下...
学生成绩管理,设学生信息包括:学号、姓名、学期、每门课程的成绩(三门课程就好English,c语言,math),对学生的成绩信息进行管理,实现如下要求:1. 输入学生成绩信息,包含学号、姓名、性别等基本信息和各科成绩...
运行CreateTeaching.sql在系统数据库tempdb中生成解答用数据库对象,为计科系生成如下选修课综合信息视图(仅包括计科系学生的选课信息,未选课的计科系学生也包括在视图的数据集中,如果未选课则课程等相关字段记为...
4) 查询有不及格的学生姓名和所在系 5) 查询所有成绩为优秀(大于90分)的学生姓名 6) 查询既选修了2号课程又选修了3号课程的学生姓名、学号; 方法一 方法二 7) 查询和刘晨同一年龄的学生 8) 选修了...
9、查询选修‘101’课程或‘102’课程的学生姓名。 select from where 10、查询选修‘101’课程和‘102’课程的学生学号。 select from where 11、查询选修‘101’课程但没选修‘102’课程的学生学号。 ...
20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004) SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN...
介于这个题 学生成绩管理有三个表,学生跟课程是一对多的关系; S(Sno,Sname)学生关系,Sno为...1、用sql语句求出所有3科以上不及格的学生姓名及各科成绩(包含3科)。 2、选出没选任课老师“高老师”的学生 的描述
6) 查询学生姓名及其所选修课程的课程号、学分和成绩; 7) 查询平均成绩超过80分的学生姓名和平均成绩; 8) 查询所有未被选修的课程编号和名称; 9) 查询选修三门以上课程(包括三门)的学生总成绩(不统计不及格的...
20、--查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML; (003),数据库(004) SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' ...
5、可以设置,修改,增加学生信息,也可以批量增加学生信息,批量增加的学生姓名都是学生编号,可以学生登录后台后自己修改姓名等信息,学生增加的时候必须选择相关的班级。 6、可以设置,修改,增加课程信息,包括...
--38、查询课程编号为01且课程成绩在80分以上的学生的学号和姓名; select a.s_id,s.s_name,a.s_score from Score a left join Student s on a.s_id=s.s_id where a.c_id=01 and a.s_score>=80 -- 37、...
1. 学生信息管理:系统允许管理员添加、修改、删除和查询学生的基本信息,如姓名、学号、性别、年龄等。 2. 成绩管理:管理员可以轻松录入、更新和删除学生的考试成绩,支持批量导入和导出成绩数据。 3. 课程管理:...
ASP.NET C# 学生行为能力分析系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为vs2010,数据库为sqlserver2008,或者以上版本都可以。 二、功能介绍 学生能够...