我知道如何获取组的最后一条记录,但我也需要获取倒数第二条记录。我怎样才能做到这一点?这里是我获得最后记录的代码。在SQL中每组获得倒数第二个记录
select job qjob, max(id) qid from sqbclog group by job
我知道如何获取组的最后一条记录,但我也需要获取倒数第二条记录。我怎样才能做到这一点?这里是我获得最后记录的代码。在SQL中每组获得倒数第二个记录
select job qjob, max(id) qid from sqbclog group by job
SELECT *
FROM (
select job AS qjob
, id AS qid
,ROW_NUMBER() OVER (PARTITION BY JOB ORDER BY ID DESC) AS RN
from sqbclog
)Sub
WHERE rn <= 2
这个查询将返回最后两个记录,但如果你只需要在第二个最后再然后在where子句中使用en = 2,否则保持原样。
这应该做到这一点!
select *
from sqbclog
where id not in (
select top (
(select count(*) from sqbclog) - 2
) id
from sqbclog
)
select job qjob, max(id) -1 qid
from sqbclog
group by job
如果我理解正确的话你的原始查询,它其实给你的最后一排,然后TOP 2应该给你的最后2行:
SELECT TOP 2工作qjob,MAX(ID)的工作QID 从sqbclog 组
谢谢你做了这个诀窍,我了解了分区。 :) – Turtleman10
您的欢迎,gald它帮助:) –