要在Oracle SQL中使用排名函數去重,可以結合使用ROW_NUMBER()函數和PARTITION BY子句。
例如,假設有一個名為table1的表,其中包含重復的數據。要根據特定的列去除重復行,可以使用以下查詢:
SELECT *
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2) AS rn
FROM table1
) t
WHERE rn = 1;
在上面的查詢中,ROW_NUMBER()函數將為每行分配一個唯一的序號,根據PARTITION BY子句指定的列進行分組,并按照ORDER BY子句指定的列排序。最后,篩選出序號為1的行,即保留每個分組中的第一行,從而去除重復行。