首页 > 其他分享 >21.统计学生成绩等级

21.统计学生成绩等级

时间:2023-12-20 20:13:05浏览次数:33  
标签:INSERT 21 INTO VALUES student 成绩 id 等级 exam

1.题目介绍

21.统计学生成绩等级
有一个学生表

id、学号唯一,学生姓名可能相同,dr代表逻辑删除。

有一个学生各科成绩表

student_id对应学生id,考试为数学、语文、英语,成绩为百分制,dr代表逻辑删除。

请计算各个学生的考试总分(不含删除的学生和成绩)和成绩等级,并按学号从小到大输出。

总分300分,成绩等级标准如下:

A: >=280

B: >=250且<280

C:>=220且<250

D:>= 180且<220

E:<180

最后结果
image

时间限制:C/C++ 4秒,其他语言8秒
空间限制:C/C++ 256M,其他语言512M
示例1

输入例子:
drop table if exists student;
create table
   student
    (
        id bigint(64) NOT NULL AUTO_INCREMENT COMMENT 'id',
		code VARCHAR(20) NOT NULL COMMENT '学生编码',
        name VARCHAR(20) NOT NULL COMMENT '学生名称',
        dr bigint(1) DEFAULT 0 COMMENT '逻辑删除标志',
        PRIMARY KEY (id)
    )
ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO student VALUES (1, '001', '张军', 0);
INSERT INTO student VALUES (2, '002', '李浩', 0);
INSERT INTO student VALUES (3, '003', '王明宇', 1);
INSERT INTO student VALUES (4, '004', '秦成', 0);
INSERT INTO student VALUES (5, '005', '李浩', 0);

drop table if exists exam;
create table
   exam
    (
        id bigint(64) NOT NULL AUTO_INCREMENT COMMENT 'id',
        student_id bigint(64) NOT NULL COMMENT '学生id',
        course VARCHAR(100) NOT NULL COMMENT '课程',
        score  SMALLINT NOT NULL COMMENT '分数',
        dr bigint(1) DEFAULT 0 COMMENT '逻辑删除标志',
        PRIMARY KEY (id)
    )
ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO exam VALUES (1, 1, '数学', '94',0);
INSERT INTO exam VALUES (2, 1, '语文', '92',0);
INSERT INTO exam VALUES (3, 1, '英语', '96',0);
INSERT INTO exam VALUES (4, 2, '数学', '82',0);
INSERT INTO exam VALUES (5, 2, '语文', '76',0);
INSERT INTO exam VALUES (6, 2, '英语', '72',0);
INSERT INTO exam VALUES (7, 3, '数学', '52',1);
INSERT INTO exam VALUES (8, 3, '语文', '59',1);
INSERT INTO exam VALUES (9, 3, '英语', '43',1);
INSERT INTO exam VALUES (10, 4, '数学', '88',0);
INSERT INTO exam VALUES (11, 4, '语文', '82',0);
INSERT INTO exam VALUES (12, 4, '英语', '83',0);
INSERT INTO exam VALUES (13, 5, '数学', '90',0);
INSERT INTO exam VALUES (14, 5, '语文', '92',0);
INSERT INTO exam VALUES (15, 5, '英语', '93',0);
输出例子:
001|张军|282|A
002|李浩|230|C
004|秦成|253|B
005|李浩|275|B

2.代码

2.1 使用if嵌套

思路

注意这里totalscore是一个计算列,而不能直接在if语句中引用,要多次使用sum(score)

select s.code, s.name, sum(score) as totalscore,  
if(sum(score) >= 280, 'A', 
    if(sum(score) >= 250,'B',
        if(sum(score) >= 220,'C',
            if(sum(score) >= 180,'D','E')))) as level
from student s left join exam e 
on s.id = e.student_id
where s.dr <> 1 
group by s.id  
order by s.code

2.2 使用case when

思路

SELECT
    s.code,
    s.name,
    SUM(score) AS totalscore,
    CASE
        WHEN SUM(score) >= 280 THEN 'A'
        WHEN SUM(score) >= 250 THEN 'B'
        WHEN SUM(score) >= 220 THEN 'C'
        WHEN SUM(score) >= 180 THEN 'D'
        ELSE 'E'
    END AS level
FROM
    student s
    LEFT JOIN exam e ON s.id = e.student_id
WHERE
    s.dr <> 1
GROUP BY
    s.id
ORDER BY
    s.code;

标签:INSERT,21,INTO,VALUES,student,成绩,id,等级,exam
From: https://www.cnblogs.com/trmbh12/p/17917383.html

相关文章

  • 21_从中序与后序遍历序列构造二叉树
    106.从中序与后序遍历序列构造二叉树给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。示例1:输入:inorder=[9,3,15,20,7],postorder=[9,15,7,20,3]输出:[3,9,20,null,null,15,7]......
  • 世微 AP5219 平均电流型LED 降压恒流驱动器 兼容LN2516/LN2517
    产品描述AP5219是一款PWM工作模式,内置功率管,适用于5V~100V输入的高精度降压LED恒流驱动芯片。输出功率可达25W,电流2.5A。AP5219可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮模式。AP5219工作频率固定在130KHZ,同时内置抖频电路,可以降低对其他设备的EMI干扰。另......
  • 【Spring教程21】Spring框架实战:Spring事务简介、AOP事务管理、代码示例全面详解
    欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及IDEA配置Maven环境》,本文的上一篇为《AOP(面对切面编程)知识总结》1相关概念介绍事务作用:在数据层保障一系列的数据库操......
  • 20231219
    j使用final框架时localhost打不开的界面 由于网络协议的问题原文参考win10localhost解析为::1的解决办法-CSDN博客......
  • P7831 [CCO2021] Travelling Merchant
    题意不多赘述。注:全文所用的“点\(u\)的出度”均指的是点\(u\)在原图上的出度。首先我们考虑\(r_{i}=0\)的情况怎么写,这时我们会发现要么答案是\(0\)要么无解。当当前点\(u\)无论怎么走都走不到一个环上,即无论怎么走最终都会走到一个出度为\(0\)的点上的话,那么显......
  • P8386 [PA2021] Od deski do deski 题解
    显然是一道计数dp。dp状态应该是最难的一部分了,个人认为这种状态设计得比较巧妙。如果像我刚开始一样设\(dp_{i,j}\)表示序列中一共有\(i\)个数,序列最后一个数为\(j\)的合法方案数的话,那么方程就会变得很不好转移,因为我们不知道当前的\(j\)和之前的某些数能不能匹配上,......
  • 抗噪/防干扰 LCD液晶段码显示驱动芯片VK2C21A/AA SSOP28 适用于适用于单相电表,温控器L
    产品品牌:VINKA/永嘉微/永嘉微电产品型号:VK2C21A/B/C/D/VK2C21AA/VK2C21BA封装形式:SOP28/24/20、NSOP16、SSOP28、SSOP24(新增封装)产品年份:新年份原厂直销,样品免费,技术支持,价格优势。概述:VK2C21是一个点阵式存储映射的LCD驱动器,可支持最大80点(20SEGx4COM)或者最大128点(16SEGx8C......
  • 20231218
    今天时Java程序设计考试,题目还好,比较麻烦的点就是第二个表的键值很多,审核的流程很好,但是我没有做完。做题的时候遇到了些问题,比如关于部门(Department)的处理,本来是想作为一个实体,但是题目中的部门是固定的,最后为了省事又改成了枚举,关于用户的管理题目中也没有说清楚,是由哪个角色......
  • 20231218
         2022级《JAVA语言程序设计》  上机考试试题                 2022.12.18  考试要求 一、本试卷为2022级《JAVA语言程序设计》上机考试试卷;二.注意编程规范:(1)通过Eclipse添加类的方式建立类;(2)程序开头部分注......
  • 20231212-sdfz 多校集训-杂题选讲
    杂题选讲20231212《批题乱讲》[ARC132E]Paw-期望+计数AT_arc132_e[ARC132E]Paw长为\(n\)的字符串,每个地方可能是<>.每次随机一个.的地方,然后等概率向左向右。直到走出边界或者走到.。路上会留下相同方向的符号。问最后期望<的个数有多少。\(1\len\l......