SQL の DISTINCT キーワードは、クエリの結果セットから重複行を削除するために使用されます。これにより、クエリは指定された列の一意のレコードのみを返すようになります。
SELECT クエリがデータを取得すると、出力に重複した行が存在する可能性があります。 DISTINCT キーワードを追加すると、SQL はこれらの重複をフィルターで除外し、指定された列内の値の一意の組み合わせを 1 つだけ保持します。
SELECT DISTINCT column1, column2, ... FROM table_name;
従業員のテーブルを考えてみましょう:
EmployeeID | Department |
---|---|
1 | HR |
2 | IT |
3 | HR |
4 | Sales |
クエリ:
SELECT DISTINCT Department FROM Employees;
Department |
---|
HR |
IT |
Sales |
ここでは、部門列の重複が削除されています。
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 を使用すると、SQL が重複をフィルタリングするために行をスキャンして比較する必要があるため、特に大規模なデータセットでクエリが遅くなる可能性があります。
条件付き重複排除は対象外:
条件付きの重複排除 (たとえば、一意の値ごとに最新の行を保持する) が必要な場合は、ROW_NUMBER().
DISTINCT キーワードは、SQL クエリ結果の重複行を排除するためのシンプルかつ強力なツールです。これにより、出力には一意の値のみが含まれるようになり、データのレポートや分析のタスクに最適になります。ただし、パフォーマンスと精度のバランスを取るために慎重に使用してください。
以上がSQL DISTINCT をマスターする: 重複の削除を簡単にの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。