选择受特定列限制的最后行数

时间:2020-04-06 11:30:22

标签: sql sql-server database

我有下表,我需要从中获取最后100个条目(按时间戳记排序),但查询应返回绑定到前3列(ProcessId,LevelNodeType和NodeTypeId)的最后100个条目。

Table

因此,例如以下数据集: enter image description here

ProcessId 4,LevelNodeType 1,NodeType 4具有7个条目。我需要构建一个查询,该查询将为每个ProcessId,LevelNodeType和NodeType组合返回最后1000个条目。

我希望我对此解释得足够清楚。

在C ++中,我可以很容易地做到这一点,方法是执行“全选”,然后过滤代码,但这并不是重点。我应该能够建立一个查询,其中Sql Server将为我执行此操作。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用row_number()

select t.*
from (select t.*,
             row_number() over (partition by ProcessId, LevelNodeType, NodeType order by timestamp desc) as seqnum
      from t
     ) t
where seqnum <= 1000;
相关问题