sqlserver创建一个函数,统计各系各职称的教师的总人数、男女人数、平均年龄。
时间: 2024-03-24 12:37:48 浏览: 190
好的,以下是创建函数的SQL代码:
```
CREATE FUNCTION fn_TeacherStats()
RETURNS TABLE
AS
RETURN
(
SELECT
Department,
Title,
COUNT(*) AS TotalCount,
SUM(CASE WHEN Gender = '男' THEN 1 ELSE 0 END) AS MaleCount,
SUM(CASE WHEN Gender = '女' THEN 1 ELSE 0 END) AS FemaleCount,
AVG(Age) AS AvgAge
FROM Teachers
GROUP BY Department, Title
)
```
这个函数返回一个表格,包含各系各职称的教师的总人数、男女人数和平均年龄。你可以在查询中使用这个函数,例如:
```
SELECT * FROM fn_TeacherStats()
```
相关问题
首先编写查询、然后使用合适的参数去封装为相应的函数 1.创建一个函数,根据学生姓名和课程名查询该生该课程的成绩。 2.创建一个函数,根据教师姓名查询该教师所教课程名、学生人数、平均成绩、最高成绩、最低成绩。 3.创建一个函数,统计各系各职称的教师的总人数、男女人数、平均年龄。(使用SQL语句完成))
好的,以下是对应的函数代码,同时包含了对应的 SQL 语句:
1. 根据学生姓名和课程名查询该生该课程的成绩
```python
def get_score_by_name_course(name, course):
"""
根据学生姓名和课程名查询该生该课程的成绩
:param name: 学生姓名
:param course: 课程名
:return: 成绩
"""
# 数据库查询操作,获取该生该课程的成绩
sql = "SELECT score FROM score_table WHERE name=%s AND course=%s"
params = (name, course)
cursor.execute(sql, params)
score = cursor.fetchone()
return score
```
2. 根据教师姓名查询该教师所教课程名、学生人数、平均成绩、最高成绩、最低成绩
```python
def get_teacher_info(name):
"""
根据教师姓名查询该教师所教课程名、学生人数、平均成绩、最高成绩、最低成绩
:param name: 教师姓名
:return: 课程名、学生人数、平均成绩、最高成绩、最低成绩
"""
# 数据库查询操作,获取该教师所教的课程名、学生人数、平均成绩、最高成绩、最低成绩
sql = "SELECT course_name, COUNT(DISTINCT student_name), AVG(score), MAX(score), MIN(score) " \
"FROM score_table WHERE teacher_name=%s GROUP BY course_name"
params = (name,)
cursor.execute(sql, params)
result = cursor.fetchall()
return result
```
3. 统计各系各职称的教师的总人数、男女人数、平均年龄
```python
def get_department_info():
"""
统计各系各职称的教师的总人数、男女人数、平均年龄
:return: 各系各职称的教师的总人数、男女人数、平均年龄
"""
# 数据库查询操作,获取各系各职称的教师总人数、男女人数、平均年龄
sql = "SELECT department, title, COUNT(*), SUM(CASE WHEN sex='male' THEN 1 ELSE 0 END), " \
"SUM(CASE WHEN sex='female' THEN 1 ELSE 0 END), AVG(age) FROM teacher_table " \
"GROUP BY department, title"
cursor.execute(sql)
result = cursor.fetchall()
return result
```
以上是对应的函数代码,其中使用了 cursor 对象进行数据库查询操作,具体实现需要根据具体的数据库和数据结构进行调整。
阅读全文