查询每个学生的总成绩的各个科目的分数和姓名,按总成绩排序

sql解决:查询每个学生的总成绩的各个科目的分数和姓名,按总成绩排序

SELECT aa.* FROM (SELECT aa.name ,GROUP_CONCAT(数学),GROUP_CONCAT(语文),GROUP_CONCAT(英语) FROM (SELECT a.name,CASE 
WHEN a. SUBJECT = '数学' THEN
	a.score 
	END 数学,
	CASE
WHEN a. SUBJECT = '语文' THEN
	a.score 
	END 语文,
	CASE
WHEN a. SUBJECT = '英语' THEN
	a.score 
END 英语
FROM tmp_1 a ) aa GROUP BY aa.name ) aa INNER JOIN 
(SELECT NAME,SUM(score)
FROM tmp_1
GROUP BY NAME
ORDER BY SUM(score) DESC) bb ON aa.name=bb.name
![在这里插入图片描述](https://img-blog.csdnimg.cn/23f1d97905d845b28ef5393b72134b83.png)
create table `tmp_1` (
	`Id` int ,
	`name` varchar ,
	`subject` varchar ,
	`score` varchar 
); 
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('1','李云龙','语文','79');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('2','李云龙','数学','81');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('3','楚云飞','语文','81');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('4','楚云飞','数学','89');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('5','张大彪','语文','79');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('6','张大彪','数学','90');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('7','郭康','英语','10');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('8','大帅','英语','16');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('9','韩凯','英语','19');
insert into `tmp_1` (`Id`, `name`, `subject`, `score`) values('10','小花','英语','19');
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值