Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL DISTINCT

A palavra-chave `DISTINCT` no PostgreSQL é utilizada para retornar valores exclusivos de uma coluna ou de uma combinação de colunas, eliminando entradas duplicadas. É frequentemente usado em conjunto com a instrução `SELECT` para garantir que o conjunto de resultados contenha apenas registros distintos.

Uso

A palavra-chave `DISTINCT` é usada quando você precisa remover linhas duplicadas dos resultados da consulta. Ela segue a palavra-chave `SELECT` e se aplica às colunas especificadas a seguir.

SELECT DISTINCT column1, column2, ...
FROM table_name;

Nessa sintaxe, `DISTINCT` garante que a combinação de `column1`, `column2`, etc., seja exclusiva no conjunto de resultados.

Exemplos

1. Valores básicos exclusivos

SELECT DISTINCT country
FROM customers;

Este exemplo recupera uma lista de países exclusivos da tabela `customers`, eliminando quaisquer entradas duplicadas. Observe que os valores `NULL` são tratados como entradas distintas.

2. Combinações exclusivas

SELECT DISTINCT first_name, last_name
FROM employees;

Aqui, a consulta retorna combinações exclusivas de `nome_primeiro` e `nome_último` da tabela `funcionários`.

3. Usando DISTINCT com ORDER BY

SELECT DISTINCT category
FROM products
ORDER BY category ASC;

Este exemplo recupera categorias de produtos distintas e as ordena em ordem alfabética.

4. Uso com DISTINCT ON

SELECT DISTINCT ON (column1) column1, column2
FROM table_name
ORDER BY column1, column2;

No PostgreSQL, `DISTINCT ON` permite que você selecione linhas distintas com base em colunas específicas, o que pode ser útil para cenários mais complexos.

Dicas e práticas recomendadas

  • Use-o com sabedoria em conjuntos de dados grandes. O `DISTINCT` pode consumir muitos recursos devido às operações de classificação e comparação envolvidas, portanto, use-o criteriosamente para evitar problemas de desempenho.
  • Combine com `ORDER BY`. Emparelhe `DISTINCT` com `ORDER BY` para classificar resultados exclusivos conforme necessário.
  • Limite as colunas quando possível. Aplique `DISTINCT` ao menor número de colunas para reduzir a complexidade e o tempo de execução.
  • Verifique a exclusividade necessária. Certifique-se de que o uso de `DISTINCT` seja realmente necessário para sua consulta específica, a fim de evitar sobrecarga desnecessária.