【mysql经典题目】科目成绩都大于80分\每个科目的第一名\总成绩排名
2017-10-10 16:24
337 查看
参考:http://blog.csdn.net/lifushan123/article/details/44948135
1、查询出科目成绩都大于80分的学生的名字?
-- 虽然瞟一眼就知道答案是楚云飞,但是我们要通过sql求出结果
2、查询出每个科目的第一名的学生的学科、姓名、分数[依次是数学、语文]?;
3、查询出总成绩排名,字段为姓名和分数,降序展示?;
1、查询出科目成绩都大于80分的学生的名字?
drop table if EXISTS tmp_1; create table tmp_1 (`Id` INT NOT NULL AUTO_INCREMENT, name varchar(10), subject varchar(10), score int, PRIMARY KEY(`Id`)); insert into tmp_1 (name,subject,score) values ('李云龙','语文',79); insert into tmp_1 (name,subject,score) values ('李云龙','数学',81); insert into tmp_1 (name,subject,score) values ('楚云飞','语文',81); insert into tmp_1 (name,subject,score) values ('楚云飞','数学',89); insert into tmp_1 (name,subject,score) values ('张大彪','语文',79); insert into tmp_1 (name,subject,score) values ('张大彪','数学',90);
-- 虽然瞟一眼就知道答案是楚云飞,但是我们要通过sql求出结果
select name from tmp_1 group by name having sum(score > 80) > 1; 或者 select a.name from tmp_1 a left join tmp_1 b on b.name = a.name where a.score > 80 and b.score > 80 and a.subject != b.subject group by a.name;
2、查询出每个科目的第一名的学生的学科、姓名、分数[依次是数学、语文]?;
select a.subject,name ,max_score from tmp_1 a left join (select subject,max(score) max_score from tmp_1 group by subject) b on a.score=b.max_score where a.subject=b.`subject` order by case when a.subject='数学' then 1 when a.subject='语文' then 2 else 3 end ;
3、查询出总成绩排名,字段为姓名和分数,降序展示?;
select name,sum(score) from tmp_1 group by NAME order by sum(score) desc;
相关文章推荐
- MYSQL成绩排名
- MYSQL成绩排名
- mysql学生成绩排名,分组取前 N 条记录
- 用SQL SERVER取分组数据第一条:查出每个班级的成绩第一名
- [关于SQL]查询成绩都大于80分的学生
- 编程题目:PAT 1004. 成绩排名 (20)
- mysql获取成绩排名
- mysql根据成绩排名次
- 查询每门课程成绩都大于80分学生的姓名
- 编程题目:PAT 1004. 成绩排名 (20)
- mysql查询成绩排名显示-两种排名方式
- oracle sql 经典例子 班级科目排名 去重
- mysql 成绩排名
- 几道经典的Mysql题目
- 【mysql经典题目】行转列
- Mysql 查询实现成绩排名,相同分数名次相同,类似于rank()函数
- JAVA-练习循环录入Java课的学生成绩,统计分数大于等于80分的学生比例
- flag28 成绩排序,输出单科最排名以及每个学生每科排名以及总分排名
- 【程序50】TestStu.java 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), //计算 出平均成绩,况原有的数据和计算出的平均分数存放在磁盘
- 一、 找出函数中存在的问题。以下题目均在Lab05项目中完成。 1、 请给MySQLConnBean.java中的类和每个方法都加上注释