004 SQL SELECT DISTINCT
The current webpage explains the SQL SELECT DISTINCT statement:
- Purpose:
SELECT DISTINCTis used to retrieve only unique (distinct) values from a column in a SQL table. - Basic Syntax:
SELECT DISTINCT column1, column2, ... FROM table_name; - Example: Selecting all unique countries from a "Customers" table:
SELECT DISTINCT Country FROM Customers; - Without DISTINCT: If you use just
SELECT Country FROM Customers;, you get all values including duplicates. - Counting Unique Values: You can count the number of unique items with:
Note: Microsoft Access does not supportSELECT COUNT(DISTINCT Country) FROM Customers;COUNT(DISTINCT column_name). As a workaround, you can use:SELECT Count(*) AS DistinctCountries FROM (SELECT DISTINCT Country FROM Customers);
The page includes syntax explanations, example tables, interactive SQL exercises, and a note about differences in Microsoft Access.
SQL SELECT DISTINCT Statement
The SQL SELECT DISTINCT Statement
The SELECT DISTINCT statement is used to return only distinct (different) values.
Select all the different countries from the "Customers" table:
SELECT DISTINCT Country FROM Customers;
Inside a table, a column often contains many duplicate values; and sometimes you only want to list the different (distinct) values.
Syntax
SELECT DISTINCT column1, column2, ...
FROM table_name;
Demo Database
Below is a selection from the Customers table used in the examples:
| 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 the "Country" value from all the records of the "Customers" table:
SELECT Country FROM Customers;
Count Distinct
By using the DISTINCT keyword in a function called COUNT, we can return the number of different countries.
SELECT COUNT(DISTINCT Country) FROM Customers;
Note: The COUNT(DISTINCT column_name) is not supported in Microsoft Access databases.
Here is a workaround for MS Access:
SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);
You will learn about the COUNT function later in this tutorial.