我对 SQL 有点生疏。
假设我有 tblMachineLogs
与 MachineLogID
, MachineID
, LogTime (date+time)
.
此表充满了来自 10 台机器的日志,这些机器的 MachineID
1 到 10,其中有很多行。
例如,我想选择每台机器的最后 5 个日志事件。
提前致谢
最佳答案
使用 Window Function
这将帮助您在每个组 (MachineID)
中找到最后的 5
log events
SELECT MachineLogID,
MachineID,
LogTime
FROM (SELECT Row_number()OVER(partition BY MachineID ORDER BY LogTime DESC) Rn,
MachineLogID,
MachineID,
LogTime
FROM tblMachineLogs) a
WHERE rn <= 5
关于sql - 选择每个 id 的前 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28313651/