The MySQL SELECT DISTINCT Statement
The SELECT DISTINCT statement is used to return only distinct (unique) values.
In a table, a column may contain several duplicate values - and sometimes you want to list only the unique values.
The following SQL selects all the distinct (unique) country values from the "Customers" table:
Example
SELECT DISTINCT Country FROM Customers;
SELECT DISTINCT Syntax
SELECT DISTINCT column1, column2, ...
FROM table_name;
Demo Database
Below is a selection from the "Customers" table in the Northwind sample database:
| 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 |
SELECT Example Without DISTINCT
If you omit the DISTINCT keyword, the SQL statement returns all the "Country" values from all the records of the "Customers" table:
Example
SELECT Country FROM Customers;
Count Distinct Values
By using the COUNT() function with the DISTINCT keyword, we can count the number of unique values.
The following SQL counts the number of unique countries in the "Customers" table:
Example
SELECT COUNT(DISTINCT Country) FROM Customers;
You will learn more about the COUNT() function later in this tutorial.