如何在SQL中为每个ID选择最后一个条目

时间:2016-05-30 20:21:57

标签: sql sql-server group-by greatest-n-per-group

我有一个包含200万行的大型日志表。

我希望找到每个id的最后一个条目。

重要的3列是

  • 用户ID
  • 操作类型
  • Actiontime
  • 文本2

有些用户出现了数千次有些只出现过一次。我需要最新的每个用户ID。我尝试使用'Group By'但它不会工作,因为text2对于每个条目都是不同的,这实际上是我需要的数据。因此需要按动作时间排序,动作类型需要为103.我真的不知道如何做到这一点。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

Select B.*
 From  (
        Select UserID,ActionTime=max(ActionTime) 
         From  SomeTable
         Group By UserID
       ) A
 Join SomeTable B on A.UserID=B.UserID and A.ActionTime=B.ActionTime