要在Oracle SQL中去重并保留最新的記錄,您可以使用ROW_NUMBER()
函數和PARTITION BY
子句來實現。以下是一個示例查詢:
SELECT *
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY column_to_check_for_duplicates ORDER BY date_column DESC) AS rn
FROM your_table
) t
WHERE t.rn = 1
在上面的查詢中,您需要將column_to_check_for_duplicates
替換為要檢查重復的列,date_column
替換為包含日期或時間戳的列。該查詢會為每個column_to_check_for_duplicates
的值分配一個行號,按照date_column
降序排列。然后,我們選擇行號為1的記錄,即每組重復值中最新的記錄。
希望這可以幫助您解決問題。