如何依照Group取得最後一筆資料

如何依照Group取得最後一筆資料

今天在論壇上看到有朋友提到【想抓A欄位的不重複資料的最後一筆資料】的問題,印象中有更漂亮的寫法,不過一時之間想不起來,應湊出了下列的作法,備註一下說不定之後自己會用到。

   1:  declare @t table
   2:  (
   3:   A varchar(10),
   4:   B datetime,
   5:   C int
   6:  )
   7:   
   8:  insert into @t values ('001' ,'2010/1/1 ' ,500)
   9:  insert into @t values ('001' ,'2010/1/2 ' ,600)
  10:  insert into @t values ('003' ,'2010/1/11' ,700)
  11:  insert into @t values ('004' ,'2010/1/12' ,300)
  12:  insert into @t values ('003' ,'2010/1/15' ,400)
  13:  insert into @t values ('004' ,'2010/1/16' ,600)
  14:  insert into @t values ('002' ,'2010/1/10' ,300)
  15:   
  16:   
  17:  select t1.*
  18:  from @t t1
  19:  inner join 
  20:      (
  21:      select A,MAX(B) AS B
  22:      from @t
  23:      group by A
  24:      ) t2
  25:  on t1.A = t2.A and t1.B = t2.B
  26:    

 

【執行結果】

 

image

 

【參考資料】