Oracle は世界最大のリレーショナル データベース管理システムの 1 つであり、その強力な機能と幅広いアプリケーションにより、エンタープライズ レベルのアプリケーションに不可欠な要素となっています。これらのアプリケーションでは、データ重複排除が一般的なタスクです。重複レコードを削除すると、データ品質が向上し、ストレージ容量とクエリ時間が削減されます。
Oracle では、複数の方法を使用して重複レコードを削除できます。
DISTINCT キーワードを使用して、一意の結果セットを返します。つまり、重複するレコードは存在しません。たとえば、次のクエリはすべての個別の顧客名を返します:
SELECT DISTINCT CUSTOMER_NAME FROM CUSTOMERS;
GROUP BY 句が使用されています。グループ化に使用し、グループごとに 1 つの行を返します。いくつかの列を組み合わせることで、一意の値を見つけることができます。たとえば、次のクエリは各都市の顧客数を返します:
SELECT CITY, COUNT(*) FROM CUSTOMERS GROUP BY CITY;
Oracle には、次のような重複レコードを排除するためのいくつかの組み込み関数が含まれています。
次のクエリは、customers テーブルの一意のアドレスの数を返します:
SELECT COUNT(DISTINCT ADDRESS) FROM CUSTOMERS;
ウィンドウ関数は、個々の行ではなく結果セット全体の値を計算する特別な関数です。ウィンドウ関数を使用して、元のデータを保持しながら重複レコードを削除します。
次のクエリは、重複した販売レコードを保持せずに、販売時間で並べ替えられた過去 20 件の販売レコードを返します。
SELECT * FROM (
SELECT
ROW_NUMBER() OVER(PARTITION BY SALE_DATE ORDER BY SALE_AMOUNT DESC) RN, SALE_ID, SALE_AMOUNT, SALE_DATE
FROM
SALES
) WHERE RN <= 20;
概要
Oracle には、DISTINCT キーワード、GROUP BY 句、重複行の削除関数など、重複レコードを削除するためのメソッドが多数あります。ウィンドウ関数。これらの方法を使用すると、データ品質が向上し、ストレージ容量とクエリ時間が削減されます。
以上がOracle で重複レコードを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。