SQL 明確な 句は、結果セットから重複する列を削除するために使用されます。
Different キーワードは、select キーワードと組み合わせて使用されます。特定のファイルに存在する重複値を回避する場合に役立ちます。 列/テーブル 。の 固有の値 は、distinct キーワードを使用すると取得されます。
- SELECT DISTINCT は、個別の ( 違う ) の値。
- DISTINCT はテーブルから重複レコードを削除します。
- DISTINCT は集計とともに使用できます。 カウント、平均、最大 、など。
- DISTINCT は単一の列に対して動作します。
- DISTINCT では複数の列はサポートされません。
構文:
SELECT DISTINCT expressions FROM tables [WHERE conditions];
パラメーター:
式: 取得する列または計算は式と呼ばれます。
テーブル: レコードを取得するテーブル。 FROM 句にはテーブルが 1 つだけあります。
WHERE 条件: 選択されたレコードに対して条件が満たされる場合がありますが、これはオプションです。
コレクション Java
注記:
性能試験
- 式が 1 つだけ指定されている場合、 明確な 句を指定すると、クエリは式の一意の値を返します。
- 複数の式が指定されている場合、クエリはリストされた式の一意の組み合わせを取得します。 明確な ここの条項。
- SQL では、 明確な 句では NULL 値を無視できません。したがって、SQL ステートメントで DISTINCT 句を使用すると、結果セットには個別の値として NULL が含まれます。
例:
次のことを考慮してください 従業員 テーブル。
まず、次の SELECT クエリが重複した給与レコードを返すことを見てみましょう。
SQL> SELECT SALARY FROM EMPLOYEES ORDER BY SALARY;
上記の SQL クエリを実行すると、重複レコードを含むすべてのレコードが取得されます。上の表では、ニュートンとジョンソンの給与は同じ 20000 です。
さて、使ってみましょう 明確な 上記の SELECT クエリでキーワードを使用します。
SQL> SELECT DISTINCT SALARY FROM EMPLOYEES ORDER BY SALARY;
上記の SQL クエリは重複レコードを削除し、次の結果を示します。
例: 列内の一意の値の検索
DISTINCT 句を調べて、テーブル内の 1 つの列内で一意の値を見つけます。
というテーブルがあります サプライヤー 次のデータを使用します。
NFAの例
上の表から、固有の状態を見つけます。
SELECT DISTINCT state FROM suppliers ORDER BY state;
これらは 6つの 記録。
この例では、一意の 州 から サプライヤー テーブルと削除 結果セットからの重複レコード。
例: 複数の列の一意の値の検索
の SQL DISTINCT 句は、SELECT ステートメントの多くのフィールドから重複レコードを削除するために使用されます。
を入力 SQL文 :
SELECT DISTINCT city, state FROM suppliers ORDER BY city, state;
出力:
for ループ Java の拡張
これらは 8 つのレコードです。
この例では、一意のそれぞれを返します 都市と州 組み合わせ。私たちは、 レッドウッドシティ そして カリフォルニア 、結果セットに表示されます。
例: DISTINCT 句は NULL 値を処理します
DISTINCT 句は次のことを考慮します。 ヌル 固有の値に SQL 。というテーブルがあります 製品 以下のデータが含まれています。
Null 値を含むフィールド Fruit_id から一意の値を選択します。以下を入力してください SQL 構文:
SELECT DISTINCT fruit_id FROM fruits ORDER BY category_id;
4 つのレコードが選択されています。以下にその結果を示します。
メソッドのオーバーロード
上の例では、クエリは、 カテゴリID カラム。結果セットの最初の行を見ると、 ヌル によって返される例外的な値です。 明確な 句。