考生表(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