姓名 科目 考试时间 名次
张三 语文 2012-02-12 2
李四 语文 2012-03-12 6
王五 语文 2012-03-16 8
张三 数学 2012-03-14 5
李四 数学 2012-03-16 6
…………上面是一个考试成绩表,不同学生考试时间不同,怎么写查询语句,可以查出某个学生所有科目的最后一次考试名次?
应该需要用到group by 吧?但没搞出来,请大家指点一下。谢谢
张三 语文 2012-02-12 2
李四 语文 2012-03-12 6
王五 语文 2012-03-16 8
张三 数学 2012-03-14 5
李四 数学 2012-03-16 6
…………上面是一个考试成绩表,不同学生考试时间不同,怎么写查询语句,可以查出某个学生所有科目的最后一次考试名次?
应该需要用到group by 吧?但没搞出来,请大家指点一下。谢谢
select 学生姓名 from table
where 考试时间 limit 1
where 考试时间=最后考试时间
group by 名次
from tb A
where not exists (select 1 from tb B where A.姓名=B.姓名 and A.科目=B.科目 and A.考试时间>B.考试时间)
where name=某人
and 考试时间=(select max(考试时间) from 表 where name=某人)
不好意思,我表述不清楚,我的意思是怎么写查询语句,可以查出“所有”学生“所有”科目的最后一次考试名次?
3楼 rucypli 的方法正是我需要的,表述不正确都能被理解,牛啊!哈哈!
不过有一点点小错误,应该是小于号 NOT EXISTS (SELECT ... AND A.考试时间 < B.考试时间)