考生表(A)
考生表 | |
StuId | Name |
1 | A1 |
2 | A2 |
成绩表 (B)
成绩表 | |||
id | StuId | Score | SubmitTime |
0 | 1 | 5 | 20130105 |
1 | 2 | 6 | 20130105 |
2 | 2 | 8 | 20130106 |
3 | 1 | 4 | 20130106 |
4 | 2 | 5 | 20130104 |
5 | 1 | 2 | 20130107 |
如果通过A表连接B表获取考试最近一次考试的成绩,也就是A和B连接只查询B中最新的一条数据
又是这号问题:
分组统计,取排名为1的数据
SELECT A.Name, B.*, row = ROW_NUMBER() OVER(PARTITION BY A.StuId ORDER BY B.SubmitTime DESC) FROM A JOIN B ON A.StuId = B.StuId ) AS t WHERE t.row = 1