sql两张表,取最新的记录SQL

表A与表B是一结多的关系,取表B中最近的一条记录

分组统计,取排名为1的数据。根据StuId分组 StuId为重复的数据,按照SubmitTime 降序排列

 Select * from (
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

 

如果多条(取要取得条数)

 Select * from (
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 <11

 

你可能感兴趣的:(SQL)