CHỈNH SỬA Đã cập nhật để không tính giá trị ngày trùng lặp cho cùng một varchar2
.
Đã thay thế RANK()
với DENSE_RANK()
sao cho nó chỉ định các cấp bậc liên tiếp, sau đó sử dụng distinct
để loại bỏ các bản sao.
Bạn có thể sử dụng DENSE_RANK ()
SELECT DISTINCT TXT, ENTRY_DATE
FROM (SELECT txt,
entry_date,
DENSE_RANK () OVER (PARTITION BY txt ORDER BY entry_date DESC)
AS myRank
FROM tmp_txt) Q1
WHERE Q1.MYRANK < 3
ORDER BY txt, entry_date DESC
Đầu vào:
txt | entry_date xyz | 03/11/2014 xyz | 25/11/2014 abc | 19/11/2014 abc | 04/11/2014 xyz | 20/11/2014 abc | 02/11/2014 abc | 28/11/2014 xyz | 25/11/2014 abc | 28/11/2014
Kết quả:
txt | entry_date abc | 28/11/2014 abc | 19/11/2014 xyz | 25/11/2014 xyz | 20/11/2014