查询平均年龄大于20的系的系名
时间: 2024-02-27 13:53:59 浏览: 14
您可以执行如下SQL语句来查询平均年龄大于20的系的系名:
```
SELECT department_name
FROM department
WHERE
(SELECT AVG(age) FROM student WHERE student.department_id = department.id) > 20;
```
其中,`department` 表为系信息表,包含字段 `id` 和 `department_name`;`student` 表为学生信息表,包含字段 `id`、`name`、`age` 和 `department_id`,其中 `department_id` 为外键,关联到 `department` 表的 `id` 字段。
相关问题
三个基本表结构如下: student(sno,sname,ssex,sdept,sage),Course(cno,cname,cpno credit) ,SC(sno,cno,grade).,用SQL语句完成以下操作: 1.查询姓“王”的男同学的人数; 2.查询信息系所有年龄不大于21岁的女生 3.查询不是“计算机系CS”和“数学系MS”学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列 4.查询每门课程的课程名及选修人数 5.统计每个系的男生人数和女生人数以及男生的最大年龄和女生的最大年龄。结果按系名升序排序。 6.查询平均分高于70分以上的学生修课门数和平均分 7.查询年龄大于女同学平均年龄的男学生姓名和年龄 8.查询选修了2号课程且成绩在90分以上的学生学号和姓名 9.查询选修了“计算机组成原理”课程的学生的姓名和成绩 10.查询和“张三”在同一个系的学生的学号和姓名 11.查询每个学生超过他选修课程平均成绩的课程号
1. 查询姓“王”的男同学的人数
```
SELECT COUNT(*) FROM student WHERE sname LIKE '王%' AND ssex = '男';
```
2. 查询信息系所有年龄不大于21岁的女生
```
SELECT * FROM student WHERE sdept = '信息系' AND ssex = '女' AND sage <= 21;
```
3. 查询不是“计算机系CS”和“数学系MS”学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列
```
SELECT * FROM student WHERE sdept NOT IN ('计算机系', '数学系') ORDER BY sdept ASC, sage DESC;
```
4. 查询每门课程的课程名及选修人数
```
SELECT cname, COUNT(*) FROM SC, Course WHERE SC.cno = Course.cno GROUP BY cname;
```
5. 统计每个系的男生人数和女生人数以及男生的最大年龄和女生的最大年龄。结果按系名升序排序。
```
SELECT sdept,
SUM(CASE WHEN ssex = '男' THEN 1 ELSE 0 END) AS male_num,
SUM(CASE WHEN ssex = '女' THEN 1 ELSE 0 END) AS female_num,
MAX(CASE WHEN ssex = '男' THEN sage ELSE 0 END) AS male_max_age,
MAX(CASE WHEN ssex = '女' THEN sage ELSE 0 END) AS female_max_age
FROM student
GROUP BY sdept
ORDER BY sdept ASC;
```
6. 查询平均分高于70分以上的学生修课门数和平均分
```
SELECT sno, sname, COUNT(*) AS course_num, AVG(grade) AS avg_grade
FROM SC
WHERE grade > 70
GROUP BY sno, sname
HAVING COUNT(*) > 0;
```
7. 查询年龄大于女同学平均年龄的男学生姓名和年龄
```
SELECT sname, sage FROM student WHERE ssex = '男' AND sage > (SELECT AVG(sage) FROM student WHERE ssex = '女');
```
8. 查询选修了2号课程且成绩在90分以上的学生学号和姓名
```
SELECT student.sno, sname FROM student, SC WHERE student.sno = SC.sno AND SC.cno = '2' AND SC.grade >= 90;
```
9. 查询选修了“计算机组成原理”课程的学生的姓名和成绩
```
SELECT student.sname, SC.grade FROM student, SC, Course WHERE student.sno = SC.sno AND SC.cno = Course.cno AND Course.cname = '计算机组成原理';
```
10. 查询和“张三”在同一个系的学生的学号和姓名
```
SELECT sno, sname FROM student WHERE sdept = (SELECT sdept FROM student WHERE sname = '张三') AND sname != '张三';
```
11. 查询每个学生超过他选修课程平均成绩的课程号
```
SELECT SC.sno, SC.cno FROM SC
WHERE SC.grade > (SELECT AVG(grade) FROM SC AS SC2 WHERE SC2.sno = SC.sno);
```
1. 查询全体学生的学号和姓名 2. 查询全体学生的详细记录 3. 查询所有选修过课程的学生学号 4. 查询考试有不及格的学生学号 5. 查询考试有不及格的学生学号 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别 6. 查询选修了四号课的学生学号和成绩,结果按成绩降序排列 7. 查询每个课程号和相应的选课人数 8. 查询计算机系的学生姓名,年龄,系别 9. 查询年龄18-20岁的学生学号,姓名,年龄,系别 10. 查询姓刘的学生情况 11. 查询既选修1号课程,又选修2号课程的学生学号 12. 查询学生的姓名和出生年份 13. 查询没有成绩的学生的学号和课程号 14. 查询总成绩大于200分的学生学号 15. 查询每门课程不及格学生人数 16. 查询不及格课程超过三门的学生学号 17. 查询年龄在10到19岁之间的学生信息 18. 查询全体学生情况,按所在系升序排列 19. 查询选了1号课程的学生平均成绩 20. 查询选了3号课程的学生最高分 21. 查询每个同学的总成绩 用MySQL实现
很抱歉,我是一个语言模型AI,无法直接访问数据库。但我可以告诉你一些SQL语句,供你参考:
1. 查询全体学生的学号和姓名
SELECT 学号, 姓名 FROM 学生表;
2. 查询全体学生的详细记录
SELECT * FROM 学生表;
3. 查询所有选修过课程的学生学号
SELECT DISTINCT 学号 FROM 选课表;
4. 查询考试有不及格的学生学号
SELECT DISTINCT 学号 FROM 成绩表 WHERE 成绩 < 60;
5. 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别
SELECT 性别, 年龄, 系别 FROM 学生表 WHERE 系别 NOT IN ('IS', 'CS');
6. 查询选修了四号课的学生学号和成绩,结果按成绩降序排列
SELECT 学号, 成绩 FROM 成绩表 WHERE 课程号 = '4' ORDER BY 成绩 DESC;
7. 查询每个课程号和相应的选课人数
SELECT 课程号, COUNT(*) AS 选课人数 FROM 选课表 GROUP BY 课程号;
8. 查询计算机系的学生姓名,年龄,系别
SELECT 姓名, 年龄, 系别 FROM 学生表 WHERE 系别 = 'CS';
9. 查询年龄18-20岁的学生学号,姓名,年龄,系别
SELECT 学号, 姓名, 年龄, 系别 FROM 学生表 WHERE 年龄 BETWEEN 18 AND 20;
10. 查询姓刘的学生情况
SELECT * FROM 学生表 WHERE 姓名 LIKE '刘%';
11. 查询既选修1号课程,又选修2号课程的学生学号
SELECT 学号 FROM 选课表 WHERE 课程号 IN ('1', '2') GROUP BY 学号 HAVING COUNT(DISTINCT 课程号) = 2;
12. 查询学生的姓名和出生年份
SELECT 姓名, YEAR(出生日期) AS 出生年份 FROM 学生表;
13. 查询没有成绩的学生的学号和课程号
SELECT 学号, 课程号 FROM 选课表 WHERE NOT EXISTS (SELECT * FROM 成绩表 WHERE 选课表.学号 = 成绩表.学号 AND 选课表.课程号 = 成绩表.课程号);
14. 查询总成绩大于200分的学生学号
SELECT 学号 FROM 成绩表 GROUP BY 学号 HAVING SUM(成绩) > 200;
15. 查询每门课程不及格学生人数
SELECT 课程号, COUNT(*) AS 不及格人数 FROM 成绩表 WHERE 成绩 < 60 GROUP BY 课程号;
16. 查询不及格课程超过三门的学生学号
SELECT 学号 FROM 成绩表 WHERE 成绩 < 60 GROUP BY 学号 HAVING COUNT(*) > 3;
17. 查询年龄在10到19岁之间的学生信息
SELECT * FROM 学生表 WHERE 年龄 BETWEEN 10 AND 19;
18. 查询全体学生情况,按所在系升序排列
SELECT * FROM 学生表 ORDER BY 系别 ASC;
19. 查询选了1号课程的学生平均成绩
SELECT AVG(成绩) AS 平均成绩 FROM 成绩表 WHERE 课程号 = '1';
20. 查询选了3号课程的学生最高分
SELECT MAX(成绩) AS 最高分 FROM 成绩表 WHERE 课程号 = '3';
21. 查询每个同学的总成绩
SELECT 学号, SUM(成绩) AS 总成绩 FROM 成绩表 GROUP BY 学号;