皆さん、こんにちは。はしまさです。
今日は、DISTINCTについて、学びたいと思います。
DISTINCTとは
DISTINCTとは、SQL(Structured Query Language)で使用されるクエリ言語の1つです。DISTINCTは、クエリの結果から重複する行を削除し、一位の結果セットを取得するための指示をするプログラミングです。
特定の列y式の値が重複している場合に、1つの値のみを残して他の重複した値を除去することができます。
例えば、以下のテーブルがあったとします。
Table: Employees
EmployeeID | FirstName | LastName |
---|---|---|
1 | John | Smith |
2 | Alice | Johnson |
3 | John | Doe |
4 | John | Smith |
5 | Alice | Johnson |
この場合、FirstName列の値が重複していますよね。
具体的には、Johnという値の場合、3つの行で重複しています。
これを、
SELECT DISTINCT FirstName FROM Employees;
という指示を出した場合、結果は
FirstName |
---|
John |
Alice |
以上に集約された結果が表示されます。
このようにDISTINCTを使用することで、重複した値を除去した一位の結果を取得することができます。
DISTINCTは、データベース内のテーブルやビューから一位の値を取得するために使用されるため、特定の列や式に対しても使用することができます。
また、複数の列を指定して複合キーとしても使用することができます。
例えば、こんな感じです。
Table: Orders
OrderID | CustomerID | ProductID |
---|---|---|
1 | 1001 | 101 |
2 | 1002 | 102 |
3 | 1001 | 101 |
4 | 1003 | 103 |
5 | 1002 | 102 |
この表があったとすると、以下の構文で2つの組み合わせの行で重複しているものを除去して取得することができます。
<構文>
SELECT DISTINCT CustomerID, ProductID FROM Orders;
<結果>
CustomerID | ProductID |
---|---|
1001 | 101 |
1002 | 102 |
1003 | 103 |
以上、DISTINCTはクエリの結果から重複を除去する際に使用し、一位の結果を取得することができます。