SELECT DISTINCT
Last updated
Last updated
📌 Note: This tutorial uses the dvdrental database. If you dont have the dvdrental, please go through this
The SELECT DISTINCT
removes duplicate rows from a result set. The SELECT DISTINCT
clause retains one row for each group of duplicates.
The SELECT DISTINCT
clause can be applied to one or more columns in the select list of the statement.
The following illustrates the syntax of the DISTINCT
clause.
In this syntax, the SELECT DISTINCT
uses the values in the column1
column to evaluate the duplicate.
If you specify multiple columns, the SELECT DISTINCT
clause will evaluate the duplicate based on the combination of values in these columns. For example,
In this syntax, the SELECT DISTINCT
uses the combination of values in both column1
and column2
columns for evaluating the duplicate.
Let's create a new table for practice the SELECT DISTINCT
clause.
First, create the colors
table that has three columns: id
, bcolor
and fcolor
using the following CREATE TABLE
statement,
Let's insert some data into it,
Third, retrieve the data from the colors
table using the SELECT statement.
The following statement selects unique values from the bcolor
column of the t1
table and sorts the result set in alphabetical order by using the ORDER BY clause.
Output:
The bcolor
column has 3 red values, two NULL, 1 green value, and two blue values. The DISTINCT
removes two red values, 1 NULL, and one blue.
Note that PostgreSQL treats NULL
s as duplicates so that it keeps one NULL
for all NULL
s when you apply the SELECT DISTINCT
clause.
The following statement applies the SELECT DISTINCT
clause to both bcolor
and fcolor
columns
Output,
In this example, the query uses the values from both bcolor
and fcolor
columns to evaluate the uniqueness of rows.
In practice, you often use the SELECT DISTINCT
clause to analyze the uniqueness of values in a column.
For example, you may want to know how many rental rates for films from the film
table,
To achieve this, you can specify the rental_rate
column in the SELECT DISTINCT
clause as follows,
The output indicates that there are only three distinct rental rates 0.99, 2.99, and 4.99.