mysql查询课程中成绩最高分的学生学号姓名和课程成绩 sql查询每个课程的最高分 | 您所在的位置:网站首页 › sql查询学生成绩最高分 › mysql查询课程中成绩最高分的学生学号姓名和课程成绩 sql查询每个课程的最高分 |
一、简单查询 (1) SELECT 姓名 FROM student WHERE 姓名 LIKE '李%'; (2) SELECT 姓名 FROM student WHERE 姓名 LIKE '%李'; (3) SELECT 姓名 FROM student WHERE 姓名 LIKE '%李%'; (4) SELECT count(*) AS 人数 FROM teacher WHERE 姓名 LIKE '李%'; 二、汇总分析 (1) 查询课程编号为“0002”的总成绩 SELECT sum(成绩) AS 总成绩 FROM score WHERE 课程号 = 0002;
「用别名是个好习惯」 (2) 查询选了课程的学生人数 SELECT DISTINCT count(学号) AS 修课人数 FROM score; SELECT count(DISTINCT 学号) AS 修课人数 FROM score;
「DISTINCT即可以放在列名前,也可以放在汇总函数前」 (3) 查询各科成绩最高和最低的分, 以如下的形式显示:课程号,最高分,最低分 SELECT 课程号,max(成绩) AS 最高分,min(成绩) AS 最低分 FROM score GROUP BY 课程号;
(4) 查询每门课程被选修的学生数 SELECT 课程号,count(学号) AS 选修学生数 FROM score GROUP BY 课程号;
(5) 查询男生、女生人数 SELECT 性别,count(性别) AS 人数 FROM student GROUP BY 性别;
(6) 查询平均成绩大于60分学生的学号和平均成绩 SELECT 学号,avg(成绩) AS 平均分 FROM score GROUP BY 学号 HAVING avg(成绩)>60;
(7) 查询至少选修两门课程的学生学号 SELECT 学号,count(课程号) AS 修课数 FROM score GROUP BY 学号 HAVING count(课程号)>=2;
(8) 查询同名同性学生名单并统计同名人数 SELECT 姓名,count(学号) AS 人数 FROM student GROUP BY 姓名 HAVING count(学号)>=2;
(9) 查询不及格的课程并按课程号从大到小排列 SELECT 课程号 FROM score WHERE 成绩80;
(9) 行列互换 - 长表变宽表 SELECT 学号, max(CASE WHEN 课程号=1 THEN 成绩 ELSE 0 END) AS 课程号0001, max(CASE WHEN 课程号=2 THEN 成绩 ELSE 0 END) AS 课程号0002, max(CASE WHEN 课程号=3 THEN 成绩 ELSE 0 END) AS 课程号0003 FROM score GROUP BY 学号;
「SELECT的最后一项不要多加逗号!!」 |
CopyRight 2018-2019 实验室设备网 版权所有 |