SELECT DISTINCT

📌 Note: This tutorial uses the dvdrental database. If you dont have the dvdrental, please go through this https://courses.parottasalna.com/database-engineering/sample-databases/dvd-rental-database

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 SELECT statement.

The following illustrates the syntax of the DISTINCT clause.

SELECT
  DISTINCT column1
FROM
  table_name;

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,

SELECT
   DISTINCT column1, column2
FROM
   table_name;

In this syntax, the SELECT DISTINCT uses the combination of values in both column1 and column2 columns for evaluating the duplicate.

PostgreSQL SELECT DISTINCT examples

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.

1. PostgreSQL SELECT DISTINCT one column example

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 NULLs as duplicates so that it keeps one NULL for all NULLs when you apply the SELECT DISTINCT clause.

2. SELECT DISTINCT on multiple columns

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.

3. Using the SELECT DISTINCT clause in practice

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.

Last updated