求每门课的第一名的简单sql语句
来源:互联网 发布:js bytearray 遍历 编辑:程序博客网 时间:2024/06/04 20:14
- create table stu2
- (
- stu_name varchar(20),
- lesson varchar(10),
- stu_score tinyint unsigned
- );
- insert into stu2 values('张三','数学',90);
- insert into stu2 values('张三','语文',50);
- insert into stu2 values('张三','地理',40);
- insert into stu2 values('李四','语文',55);
- insert into stu2 values('李四','政治',45);
- insert into stu2 values('王五','政治',30);
- insert into stu2 values('jack','数学',88);
- insert into stu2 values('jack','语文',67);
- insert into stu2 values('jack','地理',77);
select lesson,max(stu_score) from stu2 group by lesson;
每门课的第一名
注意,这个是错的:
select stu_name,lesson,max(stu_score) from stu2 group by lesson;
而必须用子查询才行
将每门课的最高分做成一个字表。而后用这个字表去和原表求交集。
select R1.stu_name,R1.lesson,R1.stu_score
from stu2 R1,
(select lesson,max(stu_score) as max_stu_score from stu2 group by lesson) R2
where R1.lesson=R2.lesson and R1.stu_score=R2.max_stu_score;
或者:select * from (select * from stu2 order by stu_score desc)as k group by lesson;
结果如下:
- +----------+--------+-----------+
- | stu_name | lesson | stu_score |
- +----------+--------+-----------+
- | 张三 | 数学 | 90 |
- | jack | 语文 | 67 |
- | 李四 | 政治 | 45 |
- | jack | 地理 | 77 |
- +----------+--------+-----------+
0 0
- 求每门课的第一名的简单sql语句
- 求简单的SQL语句
- 求 二个简单的 SQL语句
- 求更简单的SQL语句
- 求每分组取前3条纪录的sql语句
- sql语句 求每学科前两名
- sql语句:查询每门课大于80分的学生姓名
- 简单的SQL语句
- 简单的SQL语句
- 简单的SQL语句
- 简单的sql语句。
- sql简单的语句
- 简单的sql语句
- 简单的SQL语句
- SQL分组求每组最大值问题的解决方法收集
- 统计每一天的用户注册数sql语句
- sql分组后查找每组的前几条记录语句
- SQL 与第一名是老乡的学生的信息
- 【codeforce】 Hamburgers
- POJ1067之威佐夫博弈
- Java对象创建与内存分布
- LruCache
- 码神之旅第三天
- 求每门课的第一名的简单sql语句
- POJ1704之Nim博弈
- POJ 2823 Sliding Windows(单调队列)
- c/c++ cin>> cout<< scanf() printf() 返回值
- Class类文件结构分析
- Codeforces 373C:Counting Kangaroos is Fun(二分+贪心)
- 浅谈操作系统对内存的管理
- HDU1847之SG值
- wait和waitpid函数