题目如图: 利用SQL语法将班级A和班级B提出来另外制作表格。
表格内容: row为各科目, colunms为各成绩段人数和各成绩段平均分数。
做完把sourcr code传给我即可。
感谢
或是跟我讲方法也可以。

题目如图: 利用SQL语法将班级A和班级B提出来另外制作表格。
表格内容: row为各科目, colunms为各成绩段人数和各成绩段平均分数。
做完把sourcr code传给我即可。
感谢
或是跟我讲方法也可以。

SELECT CATEGORY as 'A班科目',
SUM(CASE WHEN GRADE>=80 THEN 1 ELSE 0 END) as 'A级人数80分以上',
SUM(CASE WHEN GRADE>=60 AND Grade <=79 THEN 1 ELSE 0 END) as 'B级人数60~79',
SUM(CASE WHEN GRADE>=0 AND Grade <=59 THEN 1 ELSE 0 END) as 'C级人数0~59',
floor(SUM(CASE WHEN Grade>=80 THEN Grade ELSE 0 END)/ SUM(CASE WHEN Grade>=80 THEN 1 ELSE NULL END)) as 'A级平均分数80分以上',
floor(SUM(CASE WHEN Grade>=60 AND Grade <=79 THEN Grade ELSE 0 END )*1.0/ SUM(CASE WHEN Grade>=60 AND Grade <=79 THEN 1 ELSE NULL END)) as 'B级平均分数60~79',
floor(SUM(CASE WHEN Grade>=0 AND Grade <=59 THEN Grade ELSE 0 END )*1.0/ SUM(CASE WHEN Grade>=0 AND Grade <=59 THEN 1 ELSE NULL END)) as 'C级平均分数0~59'
FROM csdn_student
WHERE ClASSID = 'A'
GROUP BY Category
CREATE TABLE `csdn_student` (
`ClASSID` varchar(45) DEFAULT NULL,
`CATEGORY` varchar(45) DEFAULT NULL,
`STUDENTID` varchar(45) DEFAULT NULL,
`GRADE` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
insert into csdn_student values
('A','国文','A001',86),('A','数学','A001',97),('A','英文','A001',100),('A','国文','A002',33),('A','数学','A002',50),('A','英文','A002',77),('A','国文','A003',100),('A','数学','A003',30),('A','英文','A003',99),('B','国文','B001',50),('B','数学','B001',60),('B','英文','B001',70),('B','国文','B002',55),('B','数学','B002',100),('B','英文','B002',98),('B','国文','B003',1),('B','数学','B003',50),('B','英文','B003',99);