求SQL语句

[img]http://dl.iteye.com/upload/picture/pic/128405/2af54070-97c9-3846-84ca-c2521ba3ab23.png[/img]

student表中数据如图:

求每个班级中年龄最小的学生的姓名

sql

7个回答

select 班级,姓名 from student where 生日 in(select max(s.生日) from student s group by s.班级 )

illiqiang
javahahahne select t.班级,t.姓名,t.生日 from student t right join (select max(s.生日) as 生日,s.班级 from student s group by s.班级 ) ss on t.班级 = ss.班级 and t.生日=ss.生日
接近 7 年之前 回复
illiqiang
javahahahne 是的前面那样是会有这个问题,下面的应该正确: select t.班级,t.姓名,t.生日 from student t right join (select max(s.生日) as 生日,s.班级 from student s group by s.班级 ) ss on t.班级 = ss.class and t.生日=ss.生日
接近 7 年之前 回复
xqg_5083
xqg_5083 这是错误的答案。如果某班里的同学,跟另外一个班最小的同学,同生日; 而这个班的这个同学,恰恰不是最小的 ---- 这种情况,结果集就多了一条错误数据
接近 7 年之前 回复

select 班级,max(生日) from tbl group by 班级

a_liujian
a_jian min(生日)
接近 7 年之前 回复

select '班级','姓名' from student t1 where not exists (select * from student t2 where t1.'生日'<t2.'生日' )

如果支持ROW_NUMBER() OVER的话我会用ROW_NUMBER() OVER,效率比较高

其具体用法参见http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html

select 生日 from table group by 班级 order by 生日 asc

Sprit000
Sprit000 谢谢回复。不过明显不对,语法有错误。
接近 7 年之前 回复

[size=medium]student(id ,name, birth,class)

select a.name from
stutdnet a, (select max(brith) birth , class from student group by class) b
where a.birth = b.birth and a.class = b.class[/size][size=medium][/size]

student(id ,name, birth,class)

select a.name from
stutdnet a, (select max(brith) birth , class from student group by class) b
where a.birth = b.birth and a.class = b.class

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问