DISTINTO em PostgreSQL: Selecionar, Ordenar por e Limitar (Exemplos)

โšก Resumo Inteligente

DISTINTO em PostgreSQL ร‰ utilizado com uma instruรงรฃo SELECT para remover linhas duplicadas e retornar apenas valores รบnicos. Abrange a sintaxe SELECT, o SQL Shell e o pgAdmin, o uso de DISTINCT em colunas รบnicas e mรบltiplas, e a comparaรงรฃo entre DISTINCT e GROUP BY.

  • ๐Ÿ”Ž SELECIONE: Recupere colunas de uma tabela com SELECT coluna FROM tabela.
  • ๐Ÿงน DISTINTO: Remova as linhas duplicadas e mantenha uma linha para cada valor รบnico.
  • โ†•๏ธ ORDENAR POR: A ordenaรงรฃo รฉ feita em ordem crescente por padrรฃo, ou em ordem decrescente com a opรงรฃo DESC.
  • ๐Ÿ”ข LIMITE: Limitar o nรบmero de registros retornados pela consulta.
  • ๐Ÿ–ฅ๏ธ Ferramentas: Execute as mesmas consultas no SQL Shell ou no pgAdmin.

DISTINTO em PostgreSQL

Vocรช pode recuperar dados da tabela usando uma instruรงรฃo SELECT.

Sintaxe:

SELECT [column names] FROM [table_name]

Aqui,

  • nomes das colunas: Nome das colunas cujo valor vocรช deseja recuperar.
  • A PARTIR DE: A clรกusula FROM define uma ou mais tabelas de origem para a instruรงรฃo SELECT.
  • Nome da tabela: O nome de uma tabela existente que vocรช deseja consultar.

O que รฉ DISTINTO em PostgreSQL?

O DISTINCT clรกusula em PostgreSQL ร‰ usado com uma instruรงรฃo SELECT para remover linhas duplicadas do conjunto de resultados. Quando uma coluna contรฉm valores repetidos, SELECT DISTINCT retorna apenas os valores รบnicos.ping Uma รบnica linha para cada grupo de duplicados. Isso รฉ รบtil quando vocรช deseja uma lista de entradas distintas, como cidades de clientes ou categorias de produtos exclusivas, sem repetiรงรฃo.

A funรงรฃo DISTINCT avalia todas as colunas listadas na instruรงรฃo SELECT para determinar se uma linha รฉ รบnica. PostgreSQL Tambรฉm oferece DISTINCT ON, que retorna a primeira linha para cada valor distinto de uma expressรฃo especificada. Vocรช pode combinar DISTINCT com ORDER BY para controlar quais linhas aparecem e com LIMIT para limitar o nรบmero de resultados.

PostgreSQL Selecione a instruรงรฃo no SQL Shell

Passo 1) Temos uma tabela chamada "tutoriais" com duas colunas: "id" e "tutorial_name". Vamos consultรก-la. Use a seguinte consulta para listar os dados da tabela:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL Selecione a instruรงรฃo no SQL Shell

OBSERVAร‡รƒO: Use o comando \c para conectar-se ao banco de dados que contรฉm a tabela que vocรช deseja consultar. No nosso caso, estamos conectados ao banco de dados guru99.

Passo 2) Se vocรช quiser visualizar todas as colunas de uma tabela especรญfica, podemos usar o caractere curinga asterisco (*). Isso significa que ele verifica todas as possibilidades e, como resultado, retornarรก todas as colunas.

SELECT * FROM tutorials;

PostgreSQL Selecione a instruรงรฃo no SQL Shell

Exibe todos os registros da tabela de tutoriais.

Passo 3) Vocรช pode usar a clรกusula ORDER para classificar dados em uma tabela com base em uma coluna especรญfica. A clรกusula ORDER organiza os dados na ordem de A a Z.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Selecione a instruรงรฃo no SQL Shell

Vocรช pode classificar de Z a A usando โ€œDESCโ€ apรณs a instruรงรฃo โ€œORDER BYโ€.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Selecione a instruรงรฃo no SQL Shell

Passo 4) O SELECT DISTINCT em PostgreSQL clรกusula pode ser usada para remover linhas duplicadas do resultado. Ele mantรฉm uma linha para cada grupo de duplicatas.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

Vamos consultar os valores distintos de ID da nossa tabela no Postgres usando consultas DISTINCT. PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Selecione a instruรงรฃo no SQL Shell

Passo 5) Vocรช pode usar o PostgreSQL A clรกusula LIMIT restringe o nรบmero de registros retornados pela consulta SELECT.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Selecione a instruรงรฃo no SQL Shell

PostgreSQL Instruรงรฃo SELECT no pgAdmin

Passo 1) Na รกrvore de objetos:

  1. Clique com o botรฃo direito do mouse na tabela.
  2. Selecione os scripts.
  3. Clique em SELECIONAR SCRIPT.

PostgreSQL Instruรงรฃo SELECT no pgAdmin

Passo 2) No painel ร  direita:

  1. Edite a consulta SELECT, se necessรกrio.
  2. Clique no รญcone de raio.
  3. Observe o resultado.

PostgreSQL Instruรงรฃo SELECT no pgAdmin

DISTINCT em vรกrias colunas

A clรกusula SELECT DISTINCT tambรฉm pode ser aplicada a mais de uma coluna. Quando vocรช lista vรกrias colunas apรณs DISTINCT, PostgreSQL Trata a combinaรงรฃo dessas colunas como uma unidade e remove as linhas onde essa combinaรงรฃo inteira estรก duplicada.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

Por exemplo, para retornar as combinaรงรตes รบnicas de tutorial_name e id da tabela de tutoriais:

SELECT DISTINCT tutorial_name, id FROM tutorials;

Neste caso, uma linha รฉ removida somente quando tanto o `tutorial_name` quanto o `id` correspondem a outra linha. Se duas linhas compartilham o mesmo `tutorial_name`, mas tรชm valores de `id` diferentes, ambas sรฃo mantidas, pois a combinaรงรฃo ainda รฉ รบnica. ร‰ importante lembrar desse comportamento: a funรงรฃo DISTINCT nรฃo remove duplicatas de uma รบnica coluna quando vรกrias colunas sรฃo selecionadas; ela remove duplicatas de todo o conjunto de colunas selecionadas simultaneamente.

DISTINCT vs GROUP BY em PostgreSQL

Tanto DISTINCT quanto GROUP BY podem remover valores duplicados, mas servem a propรณsitos diferentes:

  • DISTINCT Retorna simplesmente as linhas รบnicas do resultado e รฉ a melhor opรงรฃo quando vocรช precisa apenas de uma lista sem duplicatas.
  • GROUP BY Agrupa linhas que compartilham um valor para que vocรช possa aplicar funรงรตes de agregaรงรฃo como COUNT, SUM ou AVG para cada grupo.

Por exemplo, as duas consultas abaixo retornam os valores de ID exclusivos:

SELECT DISTINCT id FROM tutorials;
SELECT id FROM tutorials GROUP BY id;

Use DISTINCT para uma lista simples de valores รบnicos e GROUP BY quando tambรฉm precisar de um cรกlculo por grupo, como contar quantos tutoriais compartilham cada ID. Em consultas simples, o planejador geralmente apresenta desempenho semelhante para ambos, mas GROUP BY รฉ necessรกrio sempre que houver agregaรงรฃo envolvida.

Folha de fraude

SELECT [column names] FROM [table_name] [clause]

Aqui estรฃo os vรกrios parรขmetros:

  • nomes das colunas: Nome das colunas cujo valor vocรช deseja recuperar.
  • A PARTIR DE: A clรกusula FROM define uma ou mais tabelas de origem para a instruรงรฃo SELECT.
  • Nome da tabela: O nome de uma tabela existente que vocรช deseja consultar.

Vรกrias clรกusulas sรฃo:

comandos Descriรงรฃo
* Recupera os registros de todas as linhas da tabela.
DISTINCT DISTINTO em PostgreSQL Ajuda vocรช a remover duplicados dos resultados.
ORDENAR POR Classifica as linhas com base em uma coluna. A ordem de classificaรงรฃo padrรฃo รฉ crescente. Use a palavra-chave DESC para classificar em ordem decrescente.
LIMITE LIMITE em PostgreSQL restringe o nรบmero de registros retornados pela consulta.

Perguntas Frequentes

Sim. Os assistentes de IA podem transformar uma descriรงรฃo em instruรงรตes SELECT DISTINCT, adicionar ORDER BY ou LIMIT e explicar o resultado. Mesmo assim, vocรช deve testar a consulta no seu esquema antes de executรก-la em produรงรฃo.

Sim. As ferramentas de IA podem ler o plano de consulta do EXPLAIN ANALYZE e sugerir รญndices ou reescrever DISTINCT como GROUP BY. Sempre valide as sugestรตes com dados reais, pois o desempenho depende do tamanho da tabela e dos รญndices.

DISTINCT remove linhas duplicadas em todas as colunas selecionadas. DISTINCT ON (expressรฃo) mantรฉm a primeira linha para cada valor distinto dessa expressรฃo, permitindo que vocรช escolha uma linha por grupo, geralmente combinado com ORDER BY.

O comando DISTINCT pode ser mais lento em tabelas grandes porque precisa comparar e remover duplicados, frequentemente usando uma classificaรงรฃo ou hash. รndices adequados e a limitaรงรฃo das colunas selecionadas ajudam a reduzir seu custo.

Resuma esta postagem com: