有一个student表,有学号,姓名,科目,成绩等字段,请写一条sql语句,算出学生的总分数?

如题所述

Mysql 示例:

1. 创建t_student表

CREATE TABLE `t_student` (
`id`  int NOT NULL AUTO_INCREMENT ,  -- 自增ID
`studentID`  varchar(20) NULL ,      -- 学号
`studentName`  varchar(20) NULL ,    -- 姓名
`subject`  varchar(50) NULL ,        -- 科目
`score`  double NULL ,               -- 成绩
PRIMARY KEY (`id`)                   -- 主键设置
);

2. 填充数据

3. 查询

SELECT
    t_student.studentID,
    t_student.studentName,
    (SELECT b.score FROM t_student AS b WHERE b.studentID = t_student.studentID AND b.`subject` = '语文') AS chineseScore,
    (SELECT b.score FROM t_student AS b WHERE b.studentID = t_student.studentID AND b.`subject` = '数学') AS mathematicsScore,
    (SELECT b.score FROM t_student AS b WHERE b.studentID = t_student.studentID AND b.`subject` = '英语') AS englishScore,
    SUM(t_student.score) AS totalScore
FROM t_student
GROUP BY t_student.studentID
ORDER BY totalScore DESC

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-09
计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩)
select stuid,name,sum(cast(score as bigint)) as allscore from stuscore group by stuid,name order by allscore desc本回答被网友采纳
第2个回答  2017-12-14
select 姓名,sum(成绩) as 总分数 from student group by 姓名;
相似回答