DISTINCT入門 in Oracle

DISTINCT キーワードでSELECT文が返す結果セット(結果セット)の重複する行を切り分けるかフィルタします。 DISTINCT キーワードは、クエリによって返される結果セットに存在するカラムの各値を互いに比較するため、クエリによって返されるカラムには、重複しない、互いにユニークなすべての値またはレコードが含まれるようにします。

構文

Start Your Free Data Science Course

Hadoop, Data Science, Statistics & others

ここで、Oracleにおけるdistinctキーワードの構文を見ていきましょう。 この場合、構文には2つのオプションがあります。 最初の構文は条件なしでdistinctキーワードを使用することで、2番目の構文は条件付きdistinctキーワードを使用することです。

条件なしの構文。 Select DISTINCT(expressions) from table_names;

条件付きの構文:Select DISTINCT(expressions) from table_names ;

パラメータ

ここで、上記の2つの構文で使用される各種パラメータを見ていきます。

  • 式:実行する列名または式を指定します。
  • table_names。 レコードを取得するテーブル名を指定します。 ここで注意すべき重要な情報は、句の後に少なくとも1つのテーブル名がなければならないということです。
  • : 任意 Where条件を指定すると、言及された条件が満たされた場合のみ、クエリ実行後に値を取得します。

注意:覚えておくべき重要な情報は、DISTINCTキーワードはNULL値もユニーク値とみなすことです。 したがって、ある列に NULL 値があり、DISTINCT キーワードを使用して一意な値を取得する場合、出力に NULL 値も表示されます。

Oracle で DISTINCT を使用するには?

ここまでで、OracleのDISTINCTキーワードとは何か、DISTINCTキーワードの構文と構文で使用される各種パラメータについて説明しました。

次に、OracleでDISTINCTを効率的に使用する方法を学ぶために、各種例を見ていきます。 例に入る前に、データベースですでに作成されたEMPLOYEEテーブルを使用します。 このテーブルは、NAME、VEHICLE_NAME、EMPLOYEE_ID、VEHICLE_ID、CITYの5つの列で構成されています。 以下は、employeeテーブルに存在する値のスクリーンショットです。 このために使用するクエリは、基本的なSELECT文

SELECT * from employee;

SQL developerで実行すると、以下に示すようにすべての値を取得します。 Employeeテーブル

それでは、例から始めましょう。 条件なしの列の一意な値

この例では、DISTINCTを使用して、条件なしでテーブルの特定の列で一意な値を見つけるつもりです。 例として、従業員テーブルの車両カラムに存在する一意の値を見つけようとします。 クエリは次のとおりです。

コード:

select DISTINCT(vehicle_name) from employee;

出力:

上記のクエリでは、テーブル名と同様に列名を提供していることがわかります。 SQL developerで上記のクエリを実行すると、以下の出力が得られます。

2. 条件付き列の一意値

この例では、ちょうど前の例のように列でユニークな値を見つけるつもりですが、少し変更されている。 この例では、いくつかの条件に基づいて一意の値を抽出するつもりです。 例として、都市がコルカタでないときに、従業員テーブルから車両名列の一意な値を取得することにしましょう。

コード:

select DISTINCT(VEHICLE_NAME) from employee where CITY != 'KOLKATA';

出力:

上記のクエリを見ると、クエリは、Where条件を満たす値を返す必要があります。 SQL developerで上記のクエリを実行すると、以下の出力が得られます。

前の例では6つの一意の値を持っていましたが、2番目の例では特定の条件を追加したため、5つの一意の値を持っています。 以前の例では1つの列を使用していましたが、今回は複数の列を使用します。 例えば、車両名と都市名の両方について一意な値を見つけ、その結果が都市名を基準にした昇順になるようにするとします。

Code:

select DISTINCT VEHICLE_NAME,CITY from employee ORDER BY CITY ASC;

Output:

上記のクエリでは、まず city 列に基づいて昇順でデータが抽出され、次に vehicle name および city 列の両方の値を使って、一意のペアが取得されています。

4.DISTINCT with NULL values

以前の記事で、DISTINCTはNULL値をユニーク値として扱い、NULL値を含む列があればその列はユニーク値となることを説明しましたが、今回はNULL値を含む列をDISTINCTする方法を説明します。 これは一意な値として扱われます。 例えば、CITY列にNULL値があり、冒頭のスクリーンショットで社員テーブルのすべての値が表示されているのがわかります。 そこで、CITY列に対してDISTINCTを適用し、NULL値が結果に与える影響を調べます。

Code:

select DISTINCT CITY from employee;

Output:

上記のクエリをSQL developerで実行すると、次のような出力が得られます。

この出力からわかるように、NULL値は個別の値として表示されます。

Conclusion – DISTINCT in Oracle

この記事では、Oracle の DISTINCT キーワード、クエリーで DISTINCT を使用するために使用する構文、これらの構文で使用するパラメーター、そしてさまざまな例を通して、私たちが必要なタスクを解決するのに Oracle の DISTINCT を使用できる方法について説明しました。

おすすめ記事

これは、OracleのDISTINCTへのガイドです。 ここでは、OracleのDISTINCTキーワード、コードと出力でDISTINCTを使用するために使用される構文について説明します。

  1. Joins in Oracle
  2. What Is Oracle Database
  3. Oracle String Functions
  4. Oracle Warehouse Builder
  5. Guide to Top Versions of Oracle
  6. ORDER BY in MySQL | How to works?
  7. Guide to this Keyword in C#
1 Shares

admin

コメントを残す

メールアドレスが公開されることはありません。

lg