SQL语句,已知Student、Course和SC表,查询学生姓名、年龄、所在系以及该系的平均年龄、最大年龄和最小年龄。
时间: 2023-06-12 16:04:51 浏览: 787
可以使用以下 SQL 语句进行查询:
```
SELECT s.name, s.age, d.name AS dept_name, AVG(s2.age) AS avg_age, MAX(s2.age) AS max_age, MIN(s2.age) AS min_age
FROM Student s
JOIN SC ON s.sid = SC.sid
JOIN Course c ON c.cid = SC.cid
JOIN Student s2 ON s2.sid = SC.sid
JOIN Department d ON d.did = s.did
GROUP BY s.name, s.age, d.name
```
其中,我们通过 JOIN 连接 Student、SC、Course、Department 四个表,然后使用 GROUP BY 对结果进行分组,统计出每个学生所在系的平均年龄、最大年龄和最小年龄。最终的结果包括学生姓名、年龄、所在系、该系的平均年龄、最大年龄和最小年龄。
相关问题
sql查询 查询学生的平均年龄以及最大年龄和最小年龄信息
假设学生信息存储在名为`students`的表中,包含`id`、`name`和`age`三个字段,可以使用如下 SQL 语句查询学生的平均年龄、最大年龄和最小年龄信息:
```sql
SELECT AVG(age) AS avg_age, MAX(age) AS max_age, MIN(age) AS min_age
FROM students;
```
其中,`AVG` 函数用于计算平均年龄,`MAX` 函数用于计算最大年龄,`MIN` 函数用于计算最小年龄。`AS` 关键字用于为计算结果命名别名,便于阅读结果。
SQL语句 查询计算机系年龄大于信息管理系某个学生年龄的学生的姓名和年龄
假设计算机系的学生表为Students,包含字段name和age,信息管理系的学生表为MgmtStudents,包含字段name和age,则SQL语句如下:
```
SELECT Students.name, Students.age
FROM Students, MgmtStudents
WHERE Students.age > (SELECT age FROM MgmtStudents WHERE name = '某个学生的姓名')
```
其中,内部查询 `(SELECT age FROM MgmtStudents WHERE name = '某个学生的姓名')` 用于获取信息管理系某个学生的年龄,然后将计算机系学生表中的年龄与该年龄进行比较,找出符合条件的学生姓名和年龄。