ホームページ >データベース >mysql チュートリアル >SQL DISTINCT をマスターする: 重複の削除を簡単に

SQL DISTINCT をマスターする: 重複の削除を簡単に

Barbara Streisand
Barbara Streisandオリジナル
2024-12-27 06:52:10604ブラウズ

Mastering SQL DISTINCT: Removing Duplicates Made Simple

SQL の DISTINCT キーワードの目的は何ですか?

SQL の DISTINCT キーワードは、クエリの結果セットから重複行を削除するために使用されます。これにより、クエリは指定された列の一意のレコードのみを返すようになります。


DISTINCT はどのように機能しますか?

SELECT クエリがデータを取得すると、出力に重複した行が存在する可能性があります。 DISTINCT キーワードを追加すると、SQL はこれらの重複をフィルターで除外し、指定された列内の値の一意の組み合わせを 1 つだけ保持します。


構文:

SELECT DISTINCT column1, column2, ...
FROM table_name;

:

1.重複を削除しています

従業員のテーブルを考えてみましょう:

EmployeeID Department
1 HR
2 IT
3 HR
4 Sales

クエリ:

SELECT DISTINCT Department
FROM Employees;

結果:

Department
HR
IT
Sales

ここでは、部門列の重複が削除されています。


2.ユニークな組み合わせを選択する

別のテーブル Orders を考えてみましょう。

OrderID CustomerID ProductID
101 1 A
102 1 B
103 1 A
104 2 C

クエリ:

SELECT DISTINCT CustomerID, ProductID
FROM Orders;

結果:

CustomerID ProductID
1 A
1 B
2 C

ここで、DISTINCT は CustomerID と ProductID の組み合わせに基づいて重複する行を除外します。


DISTINCT を使用する場合

  1. 一意の値を見つけるには:

    列または列の組み合わせ内のすべての一意の値を知りたい場合。

    例: 在庫内のすべての個別の製品カテゴリをリストします。

  2. 冗長性を排除するには:

    結果セット内の重複行が分析やレポートに必要ない場合。

    例: 従業員データベースから一意の部門名を取得します。

  3. データクリーンアップ用:

    重複を削除してクリーンなデータセットを準備するのに役立ちます。


DISTINCT の制限

  1. パフォーマンスへの影響:

    DISTINCT を使用すると、SQL が重複をフィルタリングするために行をスキャンして比較する必要があるため、特に大規模なデータセットでクエリが遅くなる可能性があります。

  2. 条件付き重複排除は対象外:

    条件付きの重複排除 (たとえば、一意の値ごとに最新の行を保持する) が必要な場合は、ROW_NUMBER().

  3. のような他の手法が必要です。

DISTINCT の使用に関するヒント

  1. DISTINCT は、クエリの実行にオーバーヘッドが追加される可能性があるため、常に必要な場合にのみ使用してください。
  2. 複雑なフィルタリングの場合は、集計 (GROUP BY) や分析関数などの代替手段を検討してください。

結論

DISTINCT キーワードは、SQL クエリ結果の重複行を排除するためのシンプルかつ強力なツールです。これにより、出力には一意の値のみが含まれるようになり、データのレポートや分析のタスクに最適になります。ただし、パフォーマンスと精度のバランスを取るために慎重に使用してください。

以上がSQL DISTINCT をマスターする: 重複の削除を簡単にの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。