sql查询每门课程被选修最高分最低分
时间: 2023-07-13 08:27:47 浏览: 121
您好!针对您的问题,可以使用以下 SQL 语句查询每门课程被选修的最高分和最低分:
```
SELECT course_name, MAX(score) AS highest_score, MIN(score) AS lowest_score
FROM scores
GROUP BY course_name;
```
其中,`scores` 表是包含了所有学生选课成绩的表,包括了学生姓名、课程名称、成绩等信息。在这个表中,每一行记录代表了一个学生的一门课程的成绩情况。
以上 SQL 语句会将 `scores` 表按照课程名称进行分组,然后分别计算每组中的最高分和最低分,并将结果返回。其中 `MAX(score)` 表示求最高分,`MIN(score)` 表示求最低分。
相关问题
是如何统计查询每位同学的选修课程数目、最高分、最低分和平均分和姓名?请问您的数据库中有哪些表格和字段?
好的,假设您的数据库中有两张表格:学生表格(students)和课程表格(courses)。学生表格包含以下字段:学生ID(student_id)、姓名(name)、选修课程ID(course_id)和成绩(score)。课程表格包含以下字段:课程ID(course_id)、课程名称(name)和课程学分(credit)。
您可以使用以下SQL语句来查询每位同学的选修课程数目、最高分、最低分和平均分和姓名:
```
SELECT students.name, COUNT(students.course_id) AS course_count, MAX(students.score) AS max_score, MIN(students.score) AS min_score, AVG(students.score) AS avg_score
FROM students
JOIN courses ON students.course_id = courses.course_id
GROUP BY students.student_id
```
这个SQL语句使用了JOIN语句,将学生表格和课程表格连接起来,然后使用GROUP BY语句将结果按照学生ID分组,然后对每个组计算选修课程数目、最高分、最低分和平均分。最后,使用SELECT语句选择姓名、选修课程数目、最高分、最低分和平均分这些字段,并将它们展示出来。
用sql sever 创建一个用户自定义函数,功能为产生一张有关学生成绩统计的报表。该报表显示每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。调用这个函数,生成相应的报表并给用户浏览。(多语句表值函数)
好的,我可以帮你解决这个问题。以下是一个示例的 SQL Server 用户自定义函数,可以生成学生成绩统计报表:
```sql
CREATE FUNCTION dbo.GetGradeReport()
RETURNS @report TABLE (
CourseID INT,
CourseName VARCHAR(50),
NumOfStudents INT,
MaxGrade INT,
MinGrade INT,
AvgGrade FLOAT
)
AS
BEGIN
INSERT INTO @report (CourseID, CourseName, NumOfStudents, MaxGrade, MinGrade, AvgGrade)
SELECT c.CourseID, c.CourseName, COUNT(s.StudentID), MAX(s.Grade), MIN(s.Grade), AVG(s.Grade)
FROM Courses c
INNER JOIN CourseSelection cs ON c.CourseID = cs.CourseID
INNER JOIN Students s ON cs.StudentID = s.StudentID
GROUP BY c.CourseID, c.CourseName
RETURN
END
```
这个函数使用了多语句表值函数的形式,它会返回一个表类型的结果集,包含了每一门课程的课程号、课程名、选修人数、本门最高分、最低分和平均分。你可以通过调用这个函数来生成相应的报表并浏览结果。使用方式如下:
```sql
SELECT * FROM dbo.GetGradeReport()
```
这个语句会返回一个表格,包含了你所需的学生成绩统计报表。希望这个示例可以帮到你!