一、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
-
分享到:
相关推荐
10、创建视图,显示每名学生的姓名、选修的课程门数、总周学时数、总学分数和加权平均分的查询,
14. 查询有不及格的学生姓名和所在系:使用 WHERE 语句和 NOT 运算符实现条件查询。 15. 查询所有成绩为优秀(大于 90 分)的学生姓名:使用 WHERE 语句和 AND 运算符实现条件查询。 16. 增加一个表格成绩等级表:...
SQL查询二 2 通过本实验使学生掌握多表查询、子查询以及基本数据操作 二、实验内容 使用实验一建立的银行贷款数据库和表,完成以下查询。 1-4是多表查询和子查询,5-11是数据操作 查询经济性质为“国营”的...
3. **查询不及格学生的学号与姓名 - 'K0001'课程** 假设我们有一个成绩表,可以通过以下查询找出"K0001"课程不及格的学生: ```sql SELECT student_id, name FROM students WHERE student_id IN (SELECT ...
【SQL学生成绩查询系统】是一个基础的网页应用,主要用于教育机构或个人学习环境中,方便学生、教师或管理员快速查询学生的成绩。系统的核心是数据库管理,通过SQL(结构化查询语言)来操作和检索数据。这里,我们...
4. **查询选修了C2或C4课程的学生的学号,姓名和课程号**: 在这个查询中,我们使用`IN`操作符来匹配`cno`为'C2'或'C4'的记录。SQL语句如下: ```sql select s.sno, s.sname, e.cno from student s, enroll e ...
学生学籍管理系统是一个基于SQL数据库的课程设计项目,旨在提高学校对学生信息的管理和查询效率。系统涵盖了学生的基本信息管理、成绩管理、班级管理、课程管理以及财务信息等多个方面,通过计算机自动化处理,解决...
1. 查询所有年龄在20岁以下的学生姓名及年龄: 使用`SELECT`和`WHERE`子句,结合`GETDATE()`函数获取当前日期,并通过`YEAR()`函数计算年龄。`BETWEEN`运算符用于筛选年龄范围。 2. 查找考试成绩不及格的学生学号...
这个查询语句使用了 NOT EXISTS 语句来检索学习全部课程的学生姓名。 八、查询所学课程包含学生 S3 所学课程的学生学号 在这个问题中,我们需要查询所学课程包含学生 S3 所学课程的学生学号。为了解决这个问题,...
### 题目11: 查询年龄不在20至23岁之间的学生姓名、系别和年龄。 ```sql SELECT Sname, Sdept, Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23; ``` - **解释**: 此查询筛选出年龄不在20到23岁之间的学生,并...
查询不及格的学生姓名(成绩低于60分) ```sql SELECT DISTINCT 姓名 FROM 学生 WHERE 成绩 ; ``` 该语句用于筛选出表`学生`中成绩低于60分的学生的姓名,并去除重复项。 #### 6. 查询IS和CS专业的学生信息,并按...
- **求选修课程数目超过2门,且选修成绩都在及格以上的学生学号:** ```sql USE Teaching; SELECT sc.studentid FROM student_courses sc GROUP BY sc.studentid HAVING COUNT(sc.courseid) > 2 AND MIN(sc....
15) 查询每门课程不及格学生人数 16) 查询不及格课程超过3门的学生学号 17) 查询年龄在10到19岁之间的学生信息 18) 查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列 19) 查询选了...
3. 成绩录入与查询:教师可以方便地输入或修改学生的单科成绩,同时提供多种条件的查询功能,如按学生、课程、学期等进行查询。 4. 统计分析:系统能自动生成各类统计报表,如平均分、及格率、排名等,帮助教师了解...
--5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩 --5.1、查询所有有成绩的SQL。 --5.2、查询所有(包括有成绩和无成绩)的SQL。 --6、查询"李"姓老师的数量 --7、查询学过"张三"老师授课的同学...
10. 查询选修了全部课程的学生信息:(需先找出所有课程的cno,然后筛选出所有课程都有的学生) 11. 查询成绩最高的学生信息:(找出最高分,然后对应查询学生信息) 12. 查询选修操作系统课程且专业代码为'07'的...
在学生成绩管理系统中,SQLServer作为后台数据库,用于存储学生的个人信息、课程信息以及成绩数据。开发者可以使用SQL语句进行数据操作,如CREATE TABLE创建表结构,INSERT INTO添加数据,SELECT查询数据,UPDATE...
使用这个数据库,学生可以查询个人的成绩和选课情况,教师可以查看全班或个别学生的成绩,管理员则可以统计分析整个学院或学校的数据,比如平均分、及格率、最高分和最低分等。 在实际应用中,我们可以通过SQL ...
- `stuname`: 学生姓名,`varchar(20)`,不允许为空 - `age`: 年龄,`int`,允许为空 - `sex`: 性别,`char(2)`,不允许为空,需通过检查约束确保输入正确 - `address`: 地址,`varchar(200)`,允许为空 - **...