PostgreSQL SELECT DISTINCT

Introdução à cláusula SELECT DISTINCT no PostgreSQL

A cláusula DISTINCT é usada na instrução SELECT para remover linhas duplicadas de um conjunto de resultados. A cláusula DISTINCT mantém uma linha para cada grupo de linhas duplicadas. A cláusula DISTINCTpode ser aplicada a uma ou mais colunas na lista de seleção da instrução SELECT.

O seguinte ilustra a sintaxe da cláusula  DISTINCT:

Nesta declaração, os valores da coluna column1 são usados ​​para avaliar a duplicata.

Se você especificar várias colunas, a cláusula DISTINCT avaliará a duplicata com base na combinação de valores dessas colunas.

Neste caso, a combinação de valores em ambas colunas column1 e column2  será usada para avaliar a duplicata.

O PostgreSQL também fornece o DISTINCT ON (expression) para manter a “primeira” linha de cada grupo de duplicatas usando a seguinte sintaxe:

A ordem das linhas retornadas da instrução SELECT  não é especificada, portanto, a “primeira” linha de cada grupo da duplicata também não é especificada.

É uma boa prática sempre usar a cláusula ORDER BY com o DISTINCT ON(expression)  para tornar o conjunto de resultados previsível.

Observe que a expressão DISTINCT ON deve corresponder à expressão mais à esquerda na cláusula ORDER BY.

Exemplos de SELECT DISTINCT no PostgreSQL

Vamos criar uma nova tabela chamada distinct_demo e inserir dados  nela para praticar a cláusula  DISTINCT.

Observe que você aprenderá como criar uma tabela e inserir dados em uma tabela no tutorial subsequente. Neste tutorial, você apenas executa a instrução no psql ou pgAdmin para executar as instruções.

Primeiro, use a seguinte instrução CREATE TABLE para criar a tabela  distinct_demo que consiste em três colunas: idbcolorfcolor.

Em segundo lugar, insira algumas linhas na tabela distinct_demo usando a seguinte instrução  INSERT:

Terceiro, consulte os dados da tabela distinct_demo usando a instrução SELECT:

Exemplo de DISTINCT em uma coluna do PostgreSQL

A instrução a seguir seleciona valores exclusivos na coluna  bcolor da tabela t1 e classifica o conjunto de resultados em ordem alfabética usando a cláusula ORDER BY.

PostgreSQL DISTINCT em múltiplas colunas

A instrução a seguir demonstra como usar a cláusula  DISTINCT em várias colunas:

Como especificamos as colunas bcolorfcolor na cláusula SELECT DISTINCT, o PostgreSQL combinou os valores em ambas bcolor e fcolor colunas para avaliar a exclusividade das linhas.

A consulta retorna a combinação única de bcolorfcolor da tabela distinct_demo . Observe que a tabela distinct_demo possui duas linhas com valor red nas   colunas bcolor e   fcolor. Quando aplicamos o DISTINCT a ambas as colunas, uma linha foi removida do conjunto de resultados porque é a duplicata.

Exemplo de PostgreSQL DISTINCT ON

A instrução a seguir classifica o conjunto de resultados por   bcolor e   fcolore, para cada grupo de duplicatas, mantém a primeira linha no conjunto de resultados retornado.

Aqui está o resultado:

Neste tutorial, você aprendeu como usar a instrução SELECT DISTINCT  para remover linhas duplicadas retornadas por uma consulta.

Deixe um comentário

O seu endereço de e-mail não será publicado.