我知道如何獲取組的最後一條記錄,但我也需要獲取倒數第二條記錄。我怎樣才能做到這一點?這裏是我獲得最後記錄的代碼。在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它幫助:) –