SQL SELECT DISTINCT文

SQL SELECT DISTINCT文は、重複しない異なる値のみを返すために使用されます。

Customersテーブルから異なるすべての国を選択します:

SELECT DISTINCT Country FROM Customers;

テーブル内の列はしばしば多くの重複する値を含むことがありますが、異なる(重複しない)値のみをリストしたい場合があります。

構文


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

デモデータベース

以下は例で使用されるCustomersテーブルからの一部です:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

DISTINCTなしのSELECT例

DISTINCTキーワードを省略すると、SQL文はCustomersテーブルのすべてのレコードから「Country」値を返します:

SELECT Country FROM Customers;

重複しないカウント

DISTINCTキーワードをCOUNT関数で使用することで、異なる国の数を返すことができます。

SELECT COUNT(DISTINCT Country) FROM Customers;

注:COUNT(DISTINCT column_name)はMicrosoft Accessデータベースではサポートされていません。

MS Access用の回避策はこちらです:


SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);