簡體   English   中英

Oracle查詢以檢索前2條處理的記錄

[英]Oracle query to retrieve first 2 processed records

Ref    Ref1  Processed     process_date
----------------------------------------------
123    xxxx     Y          23-03-2017 12:10:00
123    zzzz     N          23-03-2017 12:11:10
123    yyyy     Y          23-03-2017 12:11:10
123    wwww     Y          23-03-2017 12:11:11
121    xxxx     Y          23-03-2017 11:10:00
121    yyyy     N          23-03-2017 11:11:00
121    zzzz     Y          23-03-2017 11:11:10
120    xxxx     Y          23-03-2017 11:00:00

如何根據處理日期和Ref僅檢索上述數據中的2條處理記錄,並且有2條以上記錄?

結果應該是

123    xxxx  Y  23-03-2017 12:10:00
123    yyyy  Y  23-03-2017 12:11:10
121    xxxx  Y  23-03-2017 11:11:00
121    zzzz  Y  23-03-2017 11:11:10

編輯:

當有2個或更多引用相同的記錄時,我才需要2條記錄

謝謝!

SELECT Ref
    ,Ref1
    ,Processed
    ,process_date
FROM (
    SELECT t.*
        ,row_number() OVER (
            PARTITION BY ref ORDER BY process_date
            ) rn
        ,COUNT(Ref) OVER (PARTITION BY ref) ct
    FROM yourtable t
    WHERE Processed = 'Y'
    )
WHERE rn IN (
        1
        ,2
        )
    AND ct >= 2
ORDER BY REF DESC
    ,process_date;

編輯 :添加計數檢查以限制記錄計數> 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM