[英]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.