SQL查询:汇总学生单科成绩与平均分

需积分: 12 2 下载量 174 浏览量 更新于2024-10-14 收藏 30KB DOC 举报
在这个SQL题汇总文档中,主要讨论了如何通过SQL语句对学生成绩数据进行操作,特别是将一个学生的多科成绩转换成一个简洁的视图,以便于查看和分析。首先,我们有一个名为"tb"的成绩表,包含学生姓名(Name)、科目(Subject)和成绩(Result)三个字段。表中记录了张三和李四两位学生在语文、数学和物理三门课程的成绩。 题目目标是实现以下转换: 1. 将单行成绩信息转换成多列格式,如姓名、各科成绩单独列出: - 每个学生的姓名作为一行 - 对应科目(语文、数学、物理)的成绩分别显示 为达到这个目的,作者使用了CASE语句来根据科目名称匹配结果。CASE语句在这里的作用是根据每个科目的名称返回相应的成绩,如果科目不存在,则返回0。然后通过`GROUP BY`语句按姓名进行分组,确保每个学生的成绩数据被聚合到一起。 接下来的SQL查询展示了如何计算每个学生的统计信息,包括: - 姓名:用于识别个体 - 语文、数学、物理成绩:使用`MAX`函数获取最高分 - 平均分:通过`AVG`函数计算成绩的平均值,转换为`DECIMAL(18,2)`类型,保留两位小数 - 总分:使用`SUM`函数求出所有成绩之和 这个例子展示了SQL的基础操作,如数据选择、条件判断、聚合函数以及简单的数据转换,这些都是SQL面试时常见的问题类型。对于熟悉Oracle或PL/SQL的求职者来说,理解和掌握这类SQL查询技巧是非常重要的,因为它能够帮助他们处理实际工作中的数据处理和分析任务。同时,这也展示了在处理不同数据库系统时如何灵活运用SQL语句来满足需求。