Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中获取每个组的倒数第二条记录_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

在SQL中获取每个组的倒数第二条记录

在SQL中获取每个组的倒数第二条记录,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我知道如何获得小组的最后一张记录,但我还需要获得倒数第二张记录。我该怎么做?这是我获取最后一条记录的代码 select job qjob, max(id) qid from sqbclog group by job 这应该够了 这应该够了 如果我正确理解了原始查询,并且它确实给出了最后一行,那么TOP 2应该给出最后两行: 选择前2个作业qjob、maxid qid 来自sqbclog 按作业分组如果我正确理解了您的原始查询,并且它确实给出了最后一行,那么前2行应该给出最后2行: SELECT

我知道如何获得小组的最后一张记录,但我还需要获得倒数第二张记录。我该怎么做?这是我获取最后一条记录的代码

select job qjob, max(id) qid from sqbclog group by job
这应该够了

这应该够了


如果我正确理解了原始查询,并且它确实给出了最后一行,那么TOP 2应该给出最后两行:

选择前2个作业qjob、maxid qid 来自sqbclog
按作业分组

如果我正确理解了您的原始查询,并且它确实给出了最后一行,那么前2行应该给出最后2行:

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
选择前2个作业qjob、maxid qid 来自sqbclog 按职务分组

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子句中使用where en=2,否则保持原样

此查询将返回最后两条记录,但如果只需要最后第二条记录,则在where子句中使用where en=2,否则保持原样

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